bus icon indicating copy to clipboard operation
bus copied to clipboard

Efficient, lock-free, bounded Rust broadcast channel

Results 10 bus issues
Sort by recently updated
recently updated
newest added

Wow this is incomplete! The tests don't pass per se, but that's on purpose. It does demonstrate the concept and that it can be implemented easily enough. There's even a...

This might be related to or a duplicate of #19 , but it's not clear based on the wording of the original issue. The problem with `add_rx` being tied to...

Hello. I'm new with Rust. 20 recv() uses 40% cpu on my linux box. Is this a known issue? ```rust extern crate bus; use bus::Bus; use std::sync::{Arc, Mutex}; use std::thread;...

When a bus is created with a buffer of 0, messages are successfully broadcast, but are never received. I'm not sure if you care about such a use case (I...

(This is related to #7, however, that treats a buffer size of 0 as inappropriate value, here it's to discuss its usefulness). The stdlib `mpsc` module has a `sync_channel(bound: usize)`](https://doc.rust-lang.org/std/sync/mpsc/fn.sync_channel.html)...

Hi, since I need this crate for a project I'm working on, I decided to give implementing futures `Stream` for a BusReceiver (Bus sending isn't async in this patch), however...

Hi! I have a need for a non-blocking sender. When the bus is full, I'd like to overwrite oldest non-read elements (so readers might skip items if they're too slow)...

Is it possible to clone BusReader dynamically? I have dynamic readers inside tokio pool.

In https://stjepang.github.io/2019/01/29/lock-free-rust-crossbeam-in-2019.html, @stjepang mentions a few pieces that may be relevant to `bus`. Specifically, [`Backoff`](https://docs.rs/crossbeam/0.7.1/crossbeam/utils/struct.Backoff.html) might be a good substitute for `parking_lot::SpinWait`, and [`CachePadded`](https://docs.rs/crossbeam/0.7.1/crossbeam/utils/struct.CachePadded.html) might buy us some better performance...

I have a small test program (implementing a component of a real application) using Bus that was idling at about 100-110% CPU utilization (1+ cores of 8), which is excessive....