Zer0 Secret Stream
Tunables and Metrics
Tunables and metrics for `zer0-secret-stream` — handshake timeouts, frame sizes, and runtime observability.
Purpose
Noise-style secret stream with handshakes, framing, bridge IO, tunables, metrics, and typed errors.
This page follows the real source shape for Zer0 Secret Stream and explains the workflow a developer is likely to use first.
Developer workflow
Start from the smallest constructor or builder, perform one meaningful operation, inspect the returned state, then add the relevant policy, storage, or network integration. The examples below should be expanded whenever the crate API changes.
Primary types to know
Bridge— network/zer0-secret-stream/src/bridge.rsBridgeReverse— network/zer0-secret-stream/src/bridge.rsHandshake— network/zer0-secret-stream/src/handshake.rsHandshakeResult— network/zer0-secret-stream/src/handshake.rsMessage— network/zer0-secret-stream/src/lib.rsSecretOptions— network/zer0-secret-stream/src/lib.rsSecretStream— network/zer0-secret-stream/src/lib.rsSecretStreamMetrics— network/zer0-secret-stream/src/metrics.rsSecretStreamMetricsSnapshot— network/zer0-secret-stream/src/metrics.rsSecretTunables— network/zer0-secret-stream/src/config.rsHandshakeError— network/zer0-secret-stream/src/handshake.rsHandshakePattern— network/zer0-secret-stream/src/handshake.rs
Example shape
use std::time::Duration;
use zer0_secret_stream::{SecretOptions, SecretStream, SecretStreamTunables};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Tunables let callers cap frame size, rekey interval, and replay window
// without forking the crate. The defaults match the audited parameters.
let tunables = SecretStreamTunables {
max_frame_bytes: 64 * 1024,
rekey_interval: Duration::from_secs(30 * 60),
replay_window: 256,
..SecretStreamTunables::default()
};
let (inner, _peer) = tokio::io::duplex(8192);
let stream = SecretStream::new(
inner,
true,
SecretOptions { tunables: tunables.clone(), ..SecretOptions::default() },
)?;
let metrics_text = stream.export_metrics_text("zer0_secret_stream");
println!(
"max_frame_bytes={} rekey_interval={:?} prometheus_bytes={}",
tunables.max_frame_bytes,
tunables.rekey_interval,
metrics_text.len(),
);
Ok(())
}