lymph

framework for Python services

Showing:

Popularity

Downloads/wk

0

GitHub Stars

78

Maintenance

Last Commit

6yrs ago

Contributors

31

Package

Dependencies

0

License

Apache License (2.0)

Categories

Readme

.. image:: https://travis-ci.org/deliveryhero/lymph.svg?branch=master :target: https://travis-ci.org/deliveryhero/lymph

Lymph

lymph is an opinionated framework for Python services. Its features are

  • Discovery: pluggable service discovery (e.g. backed by ZooKeeper)
  • RPC: request-reply messaging (via ZeroMQ + MessagePack)
  • Events: pluggable and reliable pub-sub messaging (e.g. backed by RabbitMQ)
  • Process Management

There's documentation <http://lymph.readthedocs.org/>_ on readthedocs.org.

Installation (as a dependency)


::

    # py-monotime requires python headers, and gevent and cython require build-essential
    $ sudo apt-get install build-essential python-dev

::

    $ pip install https://github.com/deliveryhero/lymph.git#egg=lymph


Development (of lymph itself)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

::

    $ git clone https://github.com/deliveryhero/lymph.git
    $ cd lymph
    $ pip install -r requirements/dev.txt

Run tests with ``tox``, build documentation with ``fab docs``.


Running services
~~~~~~~~~~~~~~~~

To run the example services, you can use the example node config in
``conf/sample-node.yml``. You'll also need a local installation
of `ZooKeeper`_ (with the configuration provided in the
`Getting Started Guide`_) and `RabbitMQ`_::

    $ export PYTHONPATH=examples
    $ cp conf/sample-node.yml .lymph.yml
    $ lymph node

You can then discover running services::

    $ lymph discover

and send requests to them from the commandline::

    $ lymph request echo.upper '{"text": "transform me"}'

To see the log output of a running service, try::

    $ lymph tail echo -l DEBUG


.. _ZooKeeper: http://zookeeper.apache.org
.. _Getting Started Guide: http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html
.. _RabbitMQ: http://www.rabbitmq.com/

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial