RustQueue 0.8.4
RustQueue 0.8.4 is a performance release for the durable Channel acknowledgement
path. It reduces the work held under the Topic state lock and removes several
per-message allocation points without changing the v7 storage or wire
contracts.
Durable Channel commit path
FINandREQfor one Topic are collected for up to 1 ms and committed in
one bounded Channel WAL group of at most 1,024 requests.- The Topic state lock is released while the Channel WAL files are synced. An
independent Channel commit gate still serializes append, checkpoint,
rotation, deletion and other durable Channel mutations around that boundary. - A successful
FINorREQresponse still follows every affected Channel WAL
fsync. Delivery may reserve already durable messages while a later group is
syncing, but never observes an uncommitted tail.
Hot-path allocation reductions
- Channel WAL commands use fixed-size stack encoding instead of allocating a
temporary command buffer for each frame. - TCP
SUB,FINandREQpaths carry sharedArc<str>Topic/Channel
identities through the broker, and touched Channel sets retain those shared
identities. - Channel operation futures no longer add an extra
Boxallocation. Each TCP
session has a bounded pool of 256 active Channel operations. - The benchmark consumer waits for the server EOF and verifies final Channel
depth, in-flight and deferred counts before accepting a drained result.
Compatibility and durability
- The on-disk format remains v7; no migration is required from 0.8.3.
- NSQ V2 commands, TLS/mTLS, AUTH, compression, lookup and the opt-in Kodo
profile retain their existing compatibility contracts. - Delivery remains at least once. Durable
FIN/REQacknowledgement semantics
and the single-copy share-nothing PVC model are unchanged.
Qualification protocol
The qualification script defaults to comparing the exact v0.8.3 tag with the
candidate on OrbStack. The formal optional run uses fresh volumes, 2 vCPU and
2 GiB for both Broker and load generator, 10 alternating pairs for each of the
three cases, a 30-second warmup and a 120-second measurement. Short development
A/B runs are useful for iteration but are not formal release evidence.
Release assets
rustqueue-0.8.4-linux-x86_64.tar.gz: Linux x86_64 binaries, Console UI and
example configurationrustqueue-0.8.4-linux-aarch64.tar.gz: Linux ARM64 binaries, Console UI and
example configurationrustqueue-0.8.4-source.tar.gz: source archive for the tagged commitrustqueue-0.8.4.tgz: Helm ChartSHA256SUMS-0.8.4: SHA-256 checksums for all downloadable assets