Skip to content
forked from uber/tchannel

network multiplexing and framing protocol for RPC

License

Notifications You must be signed in to change notification settings

jc-fireball/tchannel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network multiplexing and framing protocol for RPC

Design goals

  • Easy to implement in multiple languages, especially JS and Python.
  • High performance forwarding path. Intermediaries can make a forwarding decision quickly.
  • Request / response model with out of order responses. Slow requests will not block subsequent faster requests at head of line.
  • Large requests/responses may/must be broken into fragments to be sent progressively.
  • Optional checksums.
  • Can be used to transport multiple protocols between endpoints, eg. HTTP+JSON and Thrift.

Parts

  • tchannel-node TChannel peer library for Node.js
  • tchannel-python TChannel peer library for Python
  • tchannel-golang TChannel peer library for Go
  • tcap TChannel packet capture tool, for eavesdropping and inspecting TChannel traffic
  • bufrw Node.js buffer structured reading and writing library, used for TChannel and Thrift
  • thriftrw Node.js Thrift buffer reader and writer
  • thriftify Node.js Thrift object serializer and deserializer with run-time Thrift IDL compiler

MIT Licenced

About

network multiplexing and framing protocol for RPC

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 54.3%
  • Python 25.7%
  • Go 18.6%
  • Other 1.4%