gatling — the constellation's ONE shared no-barrier worker-pool engine.
Extracted into its own leaf crate so every codec (lgz, ljar, lbzip2,
lzip-parallel, …) and the znippy-zoomies root crate can depend on the
same engine without a dependency cycle: this crate depends on no codec, so
there is no cycle and no reason for any codec to hand-roll a private thread
pool (the sin the rayon-free law forbids).
- [
gatling]: generic no-barrier worker-pool engine (split → N decode → in-order collect → sink), parameterised by a [gatling::Codec] + a [gatling::Sink]. Its [gatling::io] submodule is the async sibling — a no-barrier, bounded, ordered async task pool for I/O-bound fan-out; its [gatling::ordered] submodule is the item-oriented ordered-sink variant. - [
gatling_forkjoin]: the fork-join gatling —gatling_for_each/gatling_for_each_balanced/gatling_run: allnunits are known now, so N workers drain a shared atomic cursor at full tilt (no reader thread). - [
background]: the depth-1 gatling — a single background [background::Job] for producer/consumer overlap (double-buffering a spill/sort/write stage behind the next decode pass). The sanctioned home for the one backgroundthread::spawnnon-engine crates would otherwise hand-roll. - [
gatling::revolver]: zero-allocation slot pool for 1-reader / N-worker streaming — the buffer substrate the streaming engine fans over. Folded in as agatlingsubmodule (was the top-levelchunk_revolvermodule); still re-exported crate-root as [chunk_revolver] for API compatibility.
znippy-zoomies re-exports these modules unchanged (pub use gatling::…) so
external consumers' znippy_zoomies::gatling / ::gatling_forkjoin /
::chunk_revolver paths keep working.