Skip to content

foctal/muxtls

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

muxtls Crates.io License

Multiplexed streams over TLS/TCP

Features

  • TLS-secured client/server transport using rustls + tokio-rustls
  • Multiple independent bidirectional logical streams over one TLS/TCP connection
  • Bounded-memory runtime with per-frame, per-stream, and per-connection limits
  • Stream-oriented API with async backpressure
  • SendStream implements tokio::io::AsyncWrite
  • RecvStream implements tokio::io::AsyncRead

Crates

  • muxtls-proto: Transport-agnostic wire protocol
    • QUIC-style VarInt
    • Frame definitions and encode/decode routines
    • Protocol error types (ProtoError, ErrorCode)
  • muxtls: Async transport implementation
    • TLS over TCP endpoint/connection/stream runtime
    • Stream multiplexing and bounded-memory backpressure
    • Depends on muxtls-proto for wire format

Quick start

[dependencies]
muxtls = "0.1"

API documentation is available on docs.rs.

Wire Format Overview

muxtls uses length-delimited frames, and each frame payload is encoded by muxtls-proto.

Supported frame types:

  • STREAM
  • RESET_STREAM
  • PING
  • CONNECTION_CLOSE

Examples

  • cargo run -p muxtls --example echo_server
  • cargo run -p muxtls --example echo_client

About

Multiplexed streams over TLS/TCP

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages