zesterer/flume

A safe and fast multi-producer, multi-consumer channel.

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 2 hours ago
Added to GitGenius on September 22nd, 2026
Created on July 30th, 2019
Open Issues & Pull Requests: 45 (+0)
GitHub issues: Enabled
Number of forks: 107
Total Stargazers: 3,076 (+0)
Total Subscribers: 19 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 7.2 hours
Mean response time: 21.5 days
90th percentile: 74.5 days
Tracked items: 14

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 11
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 694 days
Stale 30+ days: 11
Stale 90+ days: 10

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • documentation (1)
  • enhancement (1)
  • good first issue (1)
  • help wanted (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Flume is a multi-producer, multi-consumer channel implementation for Rust that provides safe, fast inter-thread communication.

The tool solves the problem of coordinating work across multiple threads by offering a channel abstraction that avoids unsafe code entirely while delivering performance competitive with or exceeding the standard library's mpsc implementation. It supports unbounded, bounded, and rendezvous queue modes, allowing developers to choose the synchronization strategy that fits their workload. Both senders and receivers are cloneable and implement Send and Sync, enabling flexible patterns of channel ownership across threads.

Flume suits projects that need reliable multi-threaded communication without the performance overhead of the standard library's channels. It works as a drop-in replacement for std::sync::mpsc, making adoption straightforward in existing codebases. The tool distinguishes itself through optional features including a select-like interface for waiting on multiple channels simultaneously, async support that can be mixed with synchronous code, and configurable spinlock-based synchronization for specific workloads. Developers should note that the project is in casual maintenance mode, meaning critical fixes continue but heavy feature development has ceased; the maintainer considers the crate largely feature-complete.

The project receives critical security and bug fixes but does not pursue new features actively. Pull requests for enhancements are welcomed and reviewed when time permits. The codebase is intentionally minimal with few dependencies, prioritizing fast compilation and simplicity alongside performance.