:orphan:

Programming Guide
=================

Programming WAMP application components is tied to the particular client
library you're using. The `Autobahn <https://crossbar.io/autobahn/>`__ family of WAMP client
libraries is provided by us, whereas you can find more WAMP client
libraries `here <http://wamp.ws/implementations/#libraries>`__.

We also operate a public :doc:`Crossbar.io Demo Instance <../Demo-Instance>`
and offer a range of materials for `IoT devices, components and
applications <https://github.com/typedefint/iotcookbook>`__.

    For administrators, we provide a :doc:`Administration Manual <Administration>` that provides documentation about
    administration aspects related to Crossbar.io.

The following introduces different areas of WAMP application programming
with Crossbar.io:

Usage
~~~~~

-  :doc:`Starting and Stopping Crossbar.io <Starting-and-Stopping-Crossbar.io>`
-  :doc:`Configuring Crossbar.io's Logging <Configuring-Crossbario-Logging>`

General
~~~~~~~

-  :doc:`URI Format <URI-Format>`
-  :doc:`Logging in Crossbar.io <Logging-in-Crossbar.io>`
-  :doc:`Error Handling <Error-Handling>`
-  :doc:`Session Meta Events and Procedures <Session-Metaevents-and-Procedures>`
-  :doc:`Session Statistics <Session-Statistics>`
-  :doc:`Development with External Devices <Development-with-External-Devices>`

Publish and Subscribe
~~~~~~~~~~~~~~~~~~~~~

-  :doc:`How Subscriptions Work <How-Subscriptions-Work>`
-  :doc:`Basic Subscriptions <Basic-Subscriptions>`
-  :doc:`Subscriber Black- and Whitelisting <Subscriber-Black-and-Whitelisting>`
-  :doc:`Publisher Exclusion <Publisher-Exclusion>`
-  :doc:`Publisher Identification <Publisher-Identification>`
-  :doc:`Pattern-Based Subscriptions <Pattern-Based-Subscriptions>`
-  :doc:`Subscription Meta Events and Procedures <Subscription-Meta-Events-and-Procedures>`
-  :doc:`Event History <Event-History>`

Remote Procedure Calls
~~~~~~~~~~~~~~~~~~~~~~

-  :doc:`How Registrations Work <How-Registrations-Work>`
-  :doc:`Basic Registrations <Basic-Registrations>`
-  :doc:`Caller Identification <Caller-Identification>`
-  :doc:`Progressive Call Results <Progressive-Call-Results>`
-  :doc:`Pattern-Based Registrations <Pattern-Based-Registrations>`
-  :doc:`Shared Registrations <Shared-Registrations>`
-  :doc:`Registration Meta Events and Procedures <Registration-Meta-Events-and-Procedures>`

Specific Usages
~~~~~~~~~~~~~~~

-  :doc:`Adding Real-Time to Django  Applications <Adding-Real-Time-to-Django-Applications>`
-  :doc:`AngularJS Application Components  <AngularJS-Application-Components>`
-  :doc:`Database Programming with  PostgreSQL <Database-Programming-with-PostgreSQL>`

Specific Languages
~~~~~~~~~~~~~~~~~~

Details of programming depend on the `specific WAMP
library </about/Supported-Languages/>`__ you are using. You may find
more information in the documentation for the respective libraries, e.g.

-  `Programming with
   Autobahn\|Python <http://autobahn.readthedocs.io/en/latest/wamp/programming.html>`__
-  `Programming with
   Autobahn\|JavaScript <https://github.com/crossbario/autobahn-js/blob/master/doc/programming.md>`__
