0.15.0: simple builder API, v2.1 framing, stream lane, benches
- omnivox::server::<T>()/client::<T>() builders; plain closures, enum in, match in the callback — the original C++ UX with the ceremony removed - serde + bincode replace the hand-rolled Cereal codec (vectors.rs still governs the crypto leaves via the C++ golden oracles) - v2.1 frames: u32 len | type | ct | tag; nonce derived from the sequence counter (no wire nonce), type byte authenticated as AAD; any frame-level failure is fatal, authenticated-but-undecodable payloads are skipped - stream lane: send_stream/on_stream, 1 MiB frames, shared sequence with messages (exact sender interleaving preserved); see dump-agent/viewer - per-connection bounded queues + writer tasks; reply/reply_stream are non-blocking try_send lanes for callbacks - benches: seal/open criterion group + transport harness (spray msg/s, stream GiB/s, raw loopback baseline) - profile.dev.package scrypt/pbkdf2 opt-level 3: golden-vector scrypt at N=2^17 was unusable in debug builds - PROTOCOL-V2.md and README rewritten for v2.1
This commit is contained in:
+20
-2
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "omnivox"
|
||||
version = "0.14.0"
|
||||
version = "0.15.0"
|
||||
edition = "2024"
|
||||
license = "GPL-3.0-or-later"
|
||||
description = "Encrypted async TCP client-server messaging: X25519 handshake, ChaCha20-Poly1305, replay-proof sequencing (OmniVox protocol v2)"
|
||||
@@ -13,10 +13,28 @@ rand_core = { version = "0.6", features = ["getrandom"] }
|
||||
sha2 = "0.10"
|
||||
x25519-dalek = { version = "2", features = ["zeroize"] }
|
||||
scrypt = "0.11"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
bincode = { version = "2", features = ["serde"] }
|
||||
thiserror = "2"
|
||||
tokio = { version = "1", features = ["rt-multi-thread", "net", "io-util", "time", "sync", "macros"] }
|
||||
tracing = "0.1"
|
||||
|
||||
[dev-dependencies]
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
bincode = { version = "2", features = ["serde"] }
|
||||
tracing-subscriber = { version = "0.3", features = ["fmt"] }
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
criterion = { version = "0.5", features = ["async_tokio"] }
|
||||
|
||||
[[bench]]
|
||||
name = "transport"
|
||||
harness = false
|
||||
# scrypt at N=2^17 (golden vectors) is unusable in unoptimized builds.
|
||||
[profile.dev.package.scrypt]
|
||||
opt-level = 3
|
||||
[profile.dev.package.pbkdf2]
|
||||
opt-level = 3
|
||||
[profile.dev.package.salsa20]
|
||||
opt-level = 3
|
||||
[profile.dev.package.sha2]
|
||||
opt-level = 3
|
||||
|
||||
Reference in New Issue
Block a user