Skip to content

andreygubarev/python-serfio

Repository files navigation

Serfio: Python client for Serf

License

serfio is a Python asyncio client for Serf. The goal was to create client with zero or minimal dependencies. It allows to use it with Debian 12 (Bookworm) without installing any additional packages, besides python3 and python3-msgpack. As far as I know, this eliminates licensing and security concerns, relieving my headaches.

serfio implements all Serf RPC commands. It includes streams implemented as async iterators (everything is implemented as an async iterator 🧐). That was another goal: to make easy to use interface. At this stage of development is very straightforward and simple, and might not change in future.

serfio is under development, it is not yet tested in production. It was tested with Serf 0.8.2. For more mature client see alternatives.

Installation

PyPi: https://pypi.org/project/serfio/

pip install serfio

Usage

import asyncio
import serfio

async def main():
    async with serfio.Serf() as serf:
        response = await serf.members()
    print(response)

Development

direnv allow .
pipenv install --dev
make lint
make test

Prerequisites:

Reference

Serf:

Alternatives