No description
Find a file
2026-04-12 15:35:51 +02:00
cli Renamed everything with Epsilon to TTP and fixed warnings. 2026-03-19 20:38:43 +01:00
core [Add] App support 2026-04-12 15:35:51 +02:00
native [Add] rand_u64 2026-04-05 22:00:08 +02:00
.gitignore Added base web project, removed wasm, optimized gitignore 2026-02-25 19:25:11 +01:00
bun.lock Updated the web package to use WebTransport 2026-03-09 23:18:36 +01:00
Cargo.lock Renamed everything with Epsilon to TTP and fixed warnings. 2026-03-19 20:38:43 +01:00
Cargo.toml [Add] CLI 2026-03-07 22:00:15 +01:00
LICENSE Create LICENSE 2026-02-25 10:08:49 +01:00
README.md Update README.md 2026-04-02 23:13:28 +02:00

TTP README.md

Tensamin Transport Protocol

TTP is a transport-layer library.

Project overview

  • TTP defines lightweight transport primitives and reference behavior for message delivery, connection management, and optional congestion control features.
  • The repository separates concerns:
    • protocol core logic (pure Rust, platform-agnostic)
    • native / platform-specific integration code (FFI, platform APIs, or optimizations)

Repository structure

  • core/ core protocol implementation
  • native/ platform/native integrations
  • cli/ in progress CLI to en-/decode TTP messages

Core

The core section consists of Communication Value encoding. A Communication Value consists of:

  • a Communication Type,
  • an optional sender ID,
  • an optional receiver ID,
  • an optional Message ID,
  • a Data Value of type Conatiner.

A DataValue may be:

  • a Container,
    • consists of DataTypes mapped to DataValues
  • an Array,
    • consists of DataValues
  • a Boolean,
  • a Number (rust i64),
  • a String,
  • Null.

A DataType is a 1 byte number, arbitrarily mapped to a defined name. The list of standart DataTypes mapped to their binary value can be found at core/src/data_types.rs.

Native

The Native crate creates basic communication via WTransport. It allows for communication between the Tensamin Processes.

It consists of the Connection, the Host and the Client.

The Connection is split into the Sender and Receiver. Messages can be send from one Partys Sender to the other Partys Receiver.

The Host accepts Client connection requests. The Hosts .next() function repeatedly produces Senders and Receivers when Clients connect.

The Client produces a Sender and Receiver when the .connect() function is called.