.. _tutorial: ========== Examples ========== This section assumes a functional |project| installation for at least one programming language. .. seealso:: :ref:`install` Installing |project| from source or using a package manager. :ref:`troubleshooting` Solving common problems. The goal of this section is teaching you how to accomplish some basic and some more advanced tasks using |project|. It is organize into the following parts: .. toctree:: :hidden: :maxdepth: 1 examples-basic examples-chat examples-converters examples-extension-points #. :ref:`Basic Communication ` This first part teaches the basic communication patterns provided by |project|: * :ref:`Sending ` and :ref:`receiving data ` * Making :ref:`Remote Procedure Calls ` #. :ref:`Building a simple chat system ` This part is concerned with designing and building a slightly more complex system applying the techniques of the first part. #. :ref:`Sending and Receiving Custom Data Types ` This part demonstrates sending and receiving of custom (non-builtin) :term:`data types ` using |project| :term:`converters `. #. :ref:`Extending |project| ` This final part switches from the user to the developer perspective and shows how new capabilities can be added to |project|. .. note:: Depending on your |project| configuration, the following examples may require a running :term:`Spread daemon` for successful execution. If only a single machine is involved, the :term:`Spread daemon` can be started using the following command: .. parsed-literal:: $ :samp:`{SPREAD_INSTALL_PREFIX}/sbin/spread` -n localhost