Transport
QUIC (Quinn + rustls), TLS 1.3 mandatory with mutual auth pinned to Ed25519 node identities. Nothing is readable on the wire. Every figure below is the node's real [transport] config or a real loopback measurement.
How data actually moves between machines — QUIC, a fast encrypted internet transport (TLS 1.3, mutual auth) — and the knobs that trade latency for throughput.
Impact: Results stream quickly and privately; right-sizing the flow-control window and using parallel streams is what lets a long-distance link reach full speed.
| Parallelism | Rows / sec | MB / sec | p50 |
|---|---|---|---|
| ×1 | 59,567 | 4.3 | 4ms |
| ×2 | 121,871 | 8.7 | 4ms |
| ×4best | 124,869 | 9 | 4ms |
| ×8 | 124,102 | 8.9 | 4ms |
Bench command
reproduce locallyReal measurements from cargo test --test benches on this machine (engine mock-1).
config default: cubic
config default: none · min 64.0 KB
config default: off — size windows from bandwidth × RTT
concurrent unidirectional QUIC streams per call · config default ×1
gso=on gro=on pacing=on
0rtt=off bdp=off
Sim seeded from the node's real configured defaults. Measured throughput is the loopback benchmark above (9 MB/s); this estimate models a WAN link.
| Knob | Config field | Description |
|---|---|---|
| Wire compression | compression.algorithm | none / lz4 / zstd — trade CPU for bytes on the wire (over min_size) |
| Congestion control | quic.congestion | bbr · cubic · newreno, with optional packet pacing |
| GSO / GRO offload | quic.gso · quic.gro | batch UDP datagrams through the NIC to cut per-packet syscall cost |
| Result-stream parallelism | result.parallelism | fan results across multiple uni-streams once over parallel_min_bytes |
| BDP flow-control target | quic.bdp | derive send/receive windows from bandwidth × RTT instead of fixed bytes |
| 0-RTT / session resumption | quic.enable_0rtt | skip a full handshake RTT on reconnect to a known peer |