Need help with telegraphy?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

machinalis
201 Stars 14 Forks 223 Commits 12 Opened issues

Description

Telegraphy provides real time events for WSGI Python applications

Services available

!
?

Need anything else?

Contributors list

Disclaimer

Telegraphy (master) is based on WAMP_ 1.0. We're rewritting it to use a more advanced broker called

crossbar.io
_ for asynchronous operations.

Currentrly development is being made in crossbario_ branch.

.. _WAMP: http://wamp.ws

.. _crossbar.io: http://crossbar.io

.. _crossbario: https://github.com/machinalis/telegraphy/tree/crossbario

Telegraphy

Telegraphy provides real time events for WSGI Python applications with additional features such as event filtering, subscription persistence and authorization/authentication.

It's initially intended for Django but you can extend it to any WSGI framework.

WebSocket pub/sub and RPC is based on AutobahnPython_ implementation of

WAMP protocol
_

.. _AutobahnPython: http://autobahn.ws/

.. _WAMP Protocol: http://wamp.ws/

Getting It

You can get Telegraphy by using pip::

$ pip install telegraphy

You will need to have pip installed on your system. On linux install the python-pip package, on windows follow

this 
_. Also, if you are on linux and not working with a virtualenv, remember to use
sudo
for both commands (
sudo pip install telegraphy
).

If you want to install it from source, grab the git repository from GitHub and run setup.py::

$ git clone git://github.com/machinalis/telegraphy.git $ cd telegraphy $ python setup.py install

Installing the Django app

Telegraphy's Django app is installed with the standard procedure: in your projects

settings.py
file add
telegraphy.contrib.django_telegraphy
to the
INSTALLED_APPS
::

INSTALLEDAPPS = ( ... 'telegraphy.contrib.djangotelegraphy', ... )

Using It

The django_telegraphy app allows you to easily extend your models so that they generate events on creation, update or delete. Those events will reach your front end in real time.

Simply install the django_telegraphy app in your Django project. Then run the following command in parallel to your web-server::

$ python manage.py run_telegraph

Extend your models so that they automatically generate events: create an

events.py
file next to your
models.py

.. code-block:: python

from models import MyModel
from telegraphy.contrib.django_telegraphy.events import BaseEventModel


class MyEventsModel(BaseEventModel): model = MyModel

Finally, prepare some template to receive and show the events:

.. code-block:: html+django

{% load telegraphy_tags %}
{% load static %}


    <title>Simple Telegraphy API Example</title>
    <script src="%7B%%20static%20%22your_app/js/jquery-1.10.2.js%22%20%%7D"></script>
    {% telegraphy_scripts %}


    <h1>Catching model events!</h1>
    </pre><ul id="event_catcher"> </ul>
    <script>
        (function (){
            var $event_catcher = $('#event_catcher');
            Telegraphy.register('your_app.MyModel',
                function (tEvent){
                    console.log("Event", tEvent);
                    var new_line = $('<li/>').text("New instance");
                    $event_catcher.append(new_line);
                });
        })();
    </script>

And that's it! Every time you create, update or delete an instance of your model, an event will reach your template.

You can find more

examples in the documentation 
__.

More detailed documentation

You can read the docs online

here 
_. Or for offline access, you can clone the project code repository and read them from the
docs
folder.

Help and discussion

For help, suggestions and discussions please refer to http://groups.google.com/group/telegraphy

To guide the development efforts, or if you find any bugs, please use

GitHub's issue tracker 
__.

Authors

  • Many people you can find on the
    contributors section 
    _.
  • Special acknowledgements to
    Machinalis 
    _ for the time provided to work on this project.

Machinalis also works on some other very interesting projects, like

SimpleAI 
,
Quepy 
and
more 
_.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.