Hi everyone!
I've recently released a new version of Loole, a Rust channel crate that supports multiple producers and multiple consumers, with both synchronous and asynchronous send/receive operations.
The main focus of this release and the recent development work has been correctness, API compatibility, and performance.
What's improved?
Correctness and testing: I've fixed several bugs and added more tests, especially around edge cases. Loole now passes the Flume tests covering the APIs that it implements.
Flume API compatibility: I've added more APIs to make Loole more compatible with Flume, making it easier to work with if you're already familiar with Flume's API.
Performance: I've continued optimizing the channel implementation and its send/receive paths. I've also expanded the benchmarking setup so the performance of different channel configurations can be evaluated and compared.
What is Loole?
Loole is a safe sync/async MPMC channel crate with:
Bounded, unbounded, and rendezvous channels.
Blocking and asynchronous send/receive operations.
No unsafe code (#![forbid(unsafe_code)]).
A familiar API, with compatibility with Flume as one of its goals.
Links
Repository: GitHub - mahdi-shojaee/loole: A safe sync/async multi-producer, multi-consumer channel · GitHub
Documentation: loole - Rust
Crates.io: crates.io: Rust Package Registry
Benchmarks: Throughput results · Latency results
I'd appreciate feedback from people who work with channels and concurrent Rust code. In particular, I'd be interested in hearing about edge cases I may have missed, and benchmark scenarios that better reflect real-world workloads.
Thanks for taking a look!
1 post - 1 participant
Read full topic
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Multi_bimap - many-to-many bimap freely made of two arbitrary maps | 0 | 13.1 | 16-10-2026 |
| 2 | Crossync - a super fast Rust concurrency library | 0 | 8 | 13-10-2026 |
| 3 | [Project] sol: A self-contained browser kernel written in Rust | 0 | 9.76 | 18-10-2026 |
| 4 | FerroProve - C-to-Rust lifter emitting #![forbid(unsafe_code)] crates with a differential oracle | 0 | 15.51 | 17-10-2026 |
| 5 | Maplike - Crate with traits for abstract containers and operations on them | 2 | 7 | 06-07-2026 |
| 6 | Zaxis 0.0.5: immediate-mode GUI on wgpu, embeddable in a host's wgpu pass, with an real overlay layer for other processes | 0 | 10.2 | 11-10-2026 |
| 7 | Show and tell : TRAINS: a leaderless, formally-verified total-order broadcast — \~2,400 lines of Rust, checked seven ways | 7 | 8 | 01-07-2026 |
| 8 | Blog: gRPC-Rust Preview Release | 0 | 9.58 | 28-05-2026 |
| 9 | Blog: gRPC-Rust Roadmap | 0 | 13.28 | 02-06-2026 |
| 10 | BloomCraft: twelve Bloom filter variants under one API, looking for feedback | 5 | 6 | 06-07-2026 |