flume (Rust channel)

Fast multi-producer, multi-consumer (MPMC) channel implementation for Rust that works seamlessly with both synchronous and async code. Unlike std::sync::mpsc (single consumer only) or tokio::sync::mpsc (async-only), flume supports multiple consumers and works in sync/async contexts interchangeably. Good performance and simple API make it a popular choice for Rust concurrent systems.

Evaluated Mar 06, 2026 (0d ago) v0.11+
Homepage ↗ Repo ↗ Developer Tools rust channels mpmc async sync concurrency message-passing
⚙ Agent Friendliness
66
/ 100
Can an agent use this?
🔒 Security
97
/ 100
Is it safe for agents?
⚡ Reliability
86
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
82
Error Messages
80
Auth Simplicity
100
Rate Limits
100

🔒 Security

TLS Enforcement
100
Auth Strength
100
Scope Granularity
100
Dep. Hygiene
88
Secret Handling
92

Pure Rust library with no network access. Memory-safe — Rust ownership prevents data races.

⚡ Reliability

Uptime/SLA
90
Version Stability
82
Breaking Changes
82
Error Recovery
88
AF Security Reliability

Best When

You need MPMC channels in Rust that work across both sync and async contexts without friction.

Avoid When

You're in a purely async tokio application — tokio's native channels integrate better with tokio's scheduler.

Use Cases

  • Implement work-stealing thread pools using MPMC channels where multiple workers consume from a shared task queue
  • Bridge sync and async code boundaries in Rust — send from sync thread, receive from async tokio task or vice versa
  • Build actor-style concurrency patterns where multiple producers send to multiple consumer workers
  • Replace std::sync::mpsc when multiple consumers are needed — flume is a drop-in replacement with added MPMC support
  • Implement bounded channels for backpressure in data pipelines — flume bounded channels block/reject senders when full

Not For

  • Tokio-native bounded channels with full async backpressure — tokio::sync::mpsc is better integrated for pure async code
  • Broadcast/watch channels where every receiver gets every message — use tokio::sync::broadcast or tokio::sync::watch
  • Persistent/durable message queues — flume is in-memory only; use Redis streams or RabbitMQ for durable queues

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: none
OAuth: No Scopes: No

Library — no auth needed.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

Open source library.

Agent Metadata

Pagination
none
Idempotent
Full
Retry Guidance
Not documented

Known Gotchas

  • Dropping all Sender handles disconnects the channel — Receiver::recv() returns Err(RecvError::Disconnected); always keep a Sender alive while receivers are consuming
  • Unbounded channels can grow without limit — use bounded channels for backpressure to avoid OOM in high-throughput scenarios
  • flume channels are MPMC but cloning is explicit — use sender.clone() and receiver.clone() to create additional handles
  • Async recv requires enabling the 'async' feature flag — it's not enabled by default in flume
  • select! macro requires multiple flume receivers — use flume::Selector for selecting over multiple channels instead
  • Performance characteristics differ between bounded and unbounded — bounded channels use a different internal algorithm that may be slower for low-contention cases

Alternatives

Full Evaluation Report

Comprehensive deep-dive: security analysis, reliability audit, agent experience review, cost modeling, competitive positioning, and improvement roadmap for flume (Rust channel).

AI-powered analysis · PDF + markdown · Delivered within 30 minutes

$99

Package Brief

Quick verdict, integration guide, cost projections, gotchas with workarounds, and alternatives comparison.

Delivered within 10 minutes

$3

Score Monitoring

Get alerted when this package's AF, security, or reliability scores change significantly. Stay ahead of regressions.

Continuous monitoring

$3/mo

Scores are editorial opinions as of 2026-03-06.

5606
Packages Evaluated
26151
Need Evaluation
173
Need Re-evaluation
Community Powered