Skip to content

Latest commit

 

History

History
98 lines (80 loc) · 2.56 KB

rpc-libs.md

File metadata and controls

98 lines (80 loc) · 2.56 KB

-- rpc implementations --

-- dynamically typed --

most json-rpc variants are pretty basic

CeRPCerus

  • eventloop: 'twisted'
  • transport layer: 'tcp', 'websocket'
  • rpc features: 'bidirectional/symmetric', 'encryption', 'async', 'flow-controlled streams'
  • serialization format: 'msgpack'
  • language: python

ticosax/pseud

  • rpc features: 'bidirectional/symmetric', 'encryption', 'async', 'sync'
  • transport layer: 'ZeroMQ'
  • serialization format: 'msgpack'
  • eventloop: 'asyncio'
  • language: python

mprpc

zerorpc

msgpack-rpc-python

jsonrpc-bidirectional

python-symmetric-jsonrpc

  • async using threads and select.poll. lock'd requests
  • language: python
  • OLD

spyne

  • language: python
  • transport and architecture agnostic

RPyC

  • rpc features: 'bidirectional/symmetric', 'async', 'sync'
  • transport layer: 'tls'
  • language: python

circuits

-- statically typed --

zeroc-ice/ice

  • transport layer: 'tls', 'tcp', 'udp', 'websockets'
  • serialization format: 'efficient binary protocol'
  • rpc features: 'remote objects', 'async', 'sync', 'batched calls', 'count based flow control'
  • licence: 'GPL'
  • language: 'C++'
  • bindings: many

Cap’n Proto

smf-rpc

gRPC

  • https://grpc.io/
  • serialization format: 'Protocol Buffers'
  • rpc features: 'async calls', 'sync calls', 'sync streams', 'bidirectional streaming'
  • transport layer: 'HTTP/2'

Apache Thrift, ThriftPy2