rapidfire
Low-latency in-process async MPMC and MPSC channels for Rust.
The problem
Async tasks and worker consumers need an in-process channel with a choice of bounded or unbounded capacity. rapidfire provides MPMC channels and exclusive-receiver MPSC channels, including async futures and optional MPSC recv_many batching.
Example uses
01. Batched task fan-in
Multiple tasks can feed one exclusive MPSC receiver that uses batched receive.
02. Bounded capacity
Use a bounded channel when producers should wait for available capacity.
03. Competing consumers
MPMC workers compete for messages, and each message is received once rather than broadcast.
Where it fits
rapidfire is an in-process Rust channel. Its waiter lists and recycling pool use mutexes, and allocated blocks remain until channel destruction.
Get started
rapidfire = "0.2"Add the dependency to Cargo.toml, then use the README for complete examples.
Authoritative installation steps, architecture diagrams, and full configuration references are maintained in the repository:
Read the rapidfire README on GitHub →
Limitations
- In-process only.
- The MPSC receiver is exclusive.
- Choose bounded capacity and measure the workload.
- Throughput does not imply p99 latency; see the current performance report in the repository.
Cite this software
Alexander Panasenko (2026). rapidfire: Low-latency async MPMC channel for Rust (v0.2.0). Zenodo. https://doi.org/10.5281/zenodo.23028434This record reflects the archived software version deposited on Zenodo for citation and reproducibility, which may differ from subsequent development releases.

