Skip to content
This repository has been archived by the owner on May 3, 2022. It is now read-only.
/ tchannel Public archive

network multiplexing and framing protocol for RPC

License

Notifications You must be signed in to change notification settings

uber/tchannel

Repository files navigation

TChannel Build Status

This project is no longer active. See #1428.

Network multiplexing and framing protocol for RPC

TChannel Logo, Dark TChannel Logo, Light

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

About

network multiplexing and framing protocol for RPC

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages