#abstraction #stream #binary-data #bidirectional #tube #extremely #server

nightly tubez

Tubez is an abstraction over http2/3 (and, eventually, websocket and webtransport) for establishing long-lived, uni- and bi-directional streams of binary data (called a 'Tube') between a client and a server with an extremely simple API

1 unstable release

0.0.1 Jul 29, 2022

#12 in #tube

MIT license

99KB
2K SLoC

Tubez

NOTE: Tubez is a side-project of mine that I spend varying amounts of 
time on. My original goal for this project was to get more hands-on 
experience with how Rust's concurrency abstractions work and perform. 
As such, I've spent most of my time exploring how the design fits within 
the constraints of Rust and very little (AKA zero) time on polishing 
some of the API details, writing docs, or attempting to use Tubez in 
a real-world use case -- but each of those things are on my mental 
roadmap.

Until this project makes more development progress, I do not recommend 
trying to do anything with it.

Tubez is an abstraction over http2/3 (and, eventually, websocket and webtransport) for establishing long-lived, uni- and bi-directional streams of binary data (called a "Tube") between a client and a server with an extremely simple API. It supports both client- and server-initiated Tubes, Tube-lifecycle management, and uses a custom framing protocol with future intention to support intelligent routing and load-balancing of Tubes with minimal compromise to data privacy.

Dependencies

~7–17MB
~215K SLoC