All Projects → lablup → callosum

lablup / callosum

Licence: MIT license
An RPC Transport Library for asyncio

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to callosum

zero
Zero: A simple, fast, high performance and low latency Python framework (RPC + PubSub) for building microservices or distributed servers
Stars: ✭ 296 (+1641.18%)
Mutual labels:  zeromq, rpc, asyncio
Zanphp
PHP开发面向C10K+的高并发SOA服务 和RPC服务首选框架
Stars: ✭ 1,451 (+8435.29%)
Mutual labels:  rpc, asyncio
Notes
let me know if my notes help you :D (it's a mess, I know)
Stars: ✭ 119 (+600%)
Mutual labels:  zeromq, asyncio
Purerpc
Asynchronous pure Python gRPC client and server implementation supporting asyncio, uvloop, curio and trio
Stars: ✭ 125 (+635.29%)
Mutual labels:  rpc, asyncio
zerorpc-dotnet
A .NET implementation of ZeroRPC
Stars: ✭ 21 (+23.53%)
Mutual labels:  zeromq, rpc
Sleuth
A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services
Stars: ✭ 331 (+1847.06%)
Mutual labels:  zeromq, rpc
Pulsar
Event driven concurrent framework for Python
Stars: ✭ 1,867 (+10882.35%)
Mutual labels:  rpc, asyncio
Aiozmq
Asyncio (pep 3156) integration with ZeroMQ
Stars: ✭ 358 (+2005.88%)
Mutual labels:  zeromq, asyncio
trellio
Python3 asyncio based microframework for microservice architecture
Stars: ✭ 19 (+11.76%)
Mutual labels:  rpc, asyncio
aiosc
Lightweight Open Sound Control implementation for Python using asyncio
Stars: ✭ 26 (+52.94%)
Mutual labels:  asyncio
cocolian-rpc
使用Apache Thrift作为容器,Google Protobuf作为协议的一个RPC框架。
Stars: ✭ 19 (+11.76%)
Mutual labels:  rpc
python-logi-circle
Python 3.6+ API for Logi Circle cameras
Stars: ✭ 23 (+35.29%)
Mutual labels:  asyncio
python3-concurrency
Python3爬虫系列的理论验证,首先研究I/O模型,分别用Python实现了blocking I/O、nonblocking I/O、I/O multiplexing各模型下的TCP服务端和客户端。然后,研究同步I/O操作(依序下载、多进程并发、多线程并发)和异步I/O(asyncio)之间的效率差别
Stars: ✭ 49 (+188.24%)
Mutual labels:  asyncio
coreipc
WCF-like service model API for communication over named pipes and TCP. .NET and node.js clients.
Stars: ✭ 22 (+29.41%)
Mutual labels:  rpc
server-framework
纯C的分布式服务器框架通用模板,跨平台,模块动态加载,tcp/可靠UDP,协程RPC,日志,集群建立
Stars: ✭ 24 (+41.18%)
Mutual labels:  rpc
polyrpc
PolyRPC, A multi-tier functional programming language
Stars: ✭ 16 (-5.88%)
Mutual labels:  rpc
napalm-logs
Cross-vendor normalisation for network syslog messages, following the OpenConfig and IETF YANG models
Stars: ✭ 131 (+670.59%)
Mutual labels:  zeromq
duckpy
A simple Python library for searching on DuckDuckGo.
Stars: ✭ 20 (+17.65%)
Mutual labels:  asyncio
waspy
WASP framework for Python
Stars: ✭ 43 (+152.94%)
Mutual labels:  asyncio
spinach
Modern Redis task queue for Python 3
Stars: ✭ 46 (+170.59%)
Mutual labels:  asyncio

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
  • 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)

Planned features

  • Managed streaming (with acks)
  • Tunneling to bundle other channels and generic network traffic in a single connection
  • Bidirectional RPC
  • Chunked transfer of large messages

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]'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].