Skip to content

Rust library selection

Same include/exclude rule as Python: measure local handoff. Brokers are category N. Job runners are not queues.

Decision

Decision Crates
Already in std-mpsc, crossbeam-channel, crossbeam-queue, tokio-mpsc, steal-deque, opt-in P/S/D
Added flume (sync face), async-channel
Out — overlapping T MPMC kanal, thingbuf, loole (same question as flume/crossbeam)
Out — job / worker frameworks apalis, faktory, sidekiq rust ports
Out — category N lapin, rdkafka, redis, zeromq

flume and kanal were listed out of scope when the lab kept a minimum set. flume is now in as the popular third-party MPMC (sync face only), the same reason janus is in for Python A. kanal stays out so we do not add a third T channel in one pass.

In this lab

Log name Category Why
std-mpsc T Stdlib MPSC. Already present.
crossbeam-channel T Production MPMC. Already present.
flume T Popular MPMC, no unsafe. Sync face only — not mixed with async. Added.
crossbeam-queue T Lock-free SegQueue. Already present.
tokio-mpsc A Tokio unbounded MPSC. Already present.
async-channel A Runtime-agnostic async MPMC. Second A library, like Python janus. Added.

The hybrid sync+async path on flume is not a category and is not timed.