Python client for the Serf orchestration tool


Keywords
Serf, orchestration, service, discovery, anyio
License
MIT
Install
pip install asyncserf==0.21.1

Documentation

asyncserf

asyncserf is an async Python interface to Serf, the decentralised solution for service discovery and orchestration.

It uses anyio <https://github.com/agronholm/anyio> as its underlying async framework.

PyPI latest version badge Code coverage badge

Installation

asyncserf requires a running Serf agent. See Serf's agent documentation for instructions.

To install asyncserf, run the following command:

$ pip install asyncserf

or alternatively (you really should be using pip though):

$ easy_install asyncserf

or from source:

$ python setup.py install

Getting Started

These examples require a running async loop. Trio <https://github.com/python-trio/trio> is recommended, though asyncio works too.

Sending a message is easy:

from asyncserf import serf_client

async with serf_client() as client:
    await client.event('foo', b'bar')

So is receiving:

.. code-block:: python

from asyncserf import serf_client

async with serf_client() as client:
async with client.stream('foo') as stream:
async for resp in stream:
print(resp.payload)

Development

You can run the tests using the following commands:

$ serf agent --tag foo=bar & # start serf agent
$ python3 -mpytest tests