Callosum RPC Library
Project description
Callosum
An RPC Transport Library
It provides an asynchronous multi-channel order-preserving message and data streaming transport for upper RPC layers (e.g., Apache Thrift) by wrapping lower transport implementations (e.g., ZeroMQ).
It aims to follow the latest coding style and conventions in Python asyncio.
Corpus callosum is a bundle of neuron fibers that connects two cerebral hemispheres of a human brain.
Prerequisite
Python 3.8 or higher.
Features
- RPC
- Native timeout and cancellation support
- Explicit server-to-client error propagation including stringified tracebacks
- Order preserving based on user-defined keys while keeping executions asynchronous
- Concurrency limits based on aiojobs
- Streaming
- Broadcast & shared pipelines
- Optional client authentication and encrypted communication
- Currently supported for only ZeroMQ with its CURVE library
- Optional message compression using snappy
- Replacible and combinable lower/upper layers (ZeroMQ/Redis + JSON/msgpack/Thrift)
Installation
To install the core:
$ pip install -U pip setuptools
$ pip install callosum
You may add extra dependencies like:
$ pip install 'callosum[zeromq,redis,thrift,snappy]'
Examples
Please check out the examples directory.
Development
Use the editable installation of Python setuptools.
$ pip install -U pip setuptools
$ pip install -U -e '.[dev,build,test,zeromq,redis,thrift,snappy]'
Changes
2019-12-06
- First public release with a working RPC based on ZeroMQ DEALER/ROUTER sockets.
2018-05-02
- Started the project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
callosum-0.9.0.tar.gz
(20.7 kB
view hashes)
Built Distribution
callosum-0.9.0-py3-none-any.whl
(27.7 kB
view hashes)