01 · Transport stack

Filament

Eight crates that move signed payloads between peers. Noise-protocol-encrypted channels with strict forward secrecy, zero-copy packet handling at the link layer, constant-time cryptographic primitives, configurable routing tables, and first-class telemetry. The substrate everything above the wire depends on.

Crates

Eight crates, one transport stack.

CrateRole
filament-coreCore abstractions, error types, runtime traits.
filament-cryptoNoise handshake, AEAD streams, constant-time primitives.
filament-interfacesNetwork interface enumeration, addressing, NAT hints.
filament-linkLink-layer framing, zero-copy buffers, MTU handling.
filament-packetWire packet format, header layout, fragmentation.
filament-transportPluggable transports (UDP, TCP, QUIC) over a common trait.
filament-typesShared protocol types — peer ids, session keys, channels.
filament-utilitiesTelemetry, instrumentation, tracing hooks.
Capabilities

What the transport gives you.

  • 01Noise-protocol-encrypted channels — strict forward secrecy on every session.
  • 02Zero-copy packet handling — buffers are never moved between layers.
  • 03Constant-time crypto — no timing-side-channel leaks on session keys.
  • 04Configurable routing — per-peer policy without recompilation.
  • 05Built-in telemetry — every link reports loss, jitter, and handshake state.
  • 06Pluggable transports — same wire format over UDP, TCP, or QUIC.
Code

A handful of lines.

use filament_transport::Transport;
use filament_crypto::Session;

let transport = Transport::udp("0.0.0.0:9912").await?;
let mut session = Session::handshake_xx(&transport, peer_pubkey).await?;

session.send(b"hello, peer").await?;
let reply = session.recv().await?;
println!("got: {}", String::from_utf8_lossy(&reply));
More of the runtime

The rest of the layer.

Move bytes with confidence.

Filament is the transport layer used by every higher-level Weave protocol. Start with the SDK, or read the source.