TChannel
This project is no longer active. See https://github.com/uber/tchannel/issues/1428.
Network multiplexing and framing protocol for RPC
Overview
TChannel is a networking framing protocol used for general RPC, supporting out-of-order responses at extremely high performance where intermediaries can make a forwarding decision quickly. It is easy to implement in multiple languages, especially JavaScript and Python.
Design Goals
- Easy implementation in multiple languages
- High performance forwarding path where intermediaries can make forwarding
decisions quickly
- Request/response model with out-of-order responses so that slow requests don't
block subsequent faster requests at the head of the line
- Ability of large requests/responses to be broken into fragments and sent
progressively
- Optional checksums
- Ability to transport multiple protocols between endpoints (e.g., HTTP+JSON
and Thrift)
Components
- tchannel-protocol TChannel Protocol Documentation
- tchannel-node TChannel
peer library for Node.js
- tchannel-python
TChannel peer library for Python
- tchannel-go
TChannel peer library for Go
- tchannel-java
TChannel peer library for the JVM
- tcurl TChannel curl program, for making manual
one-off requests to TChannel servers
- tcap TChannel packet capture tool, for
eavesdropping and inspecting TChannel traffic
MIT Licensed