|
@@ -27,7 +27,7 @@
|
|
|
|
|
|
`thingbuf` is a lock-free array-based concurrent ring buffer that allows access
|
|
`thingbuf` is a lock-free array-based concurrent ring buffer that allows access
|
|
to slots in the buffer by reference. It's also [asynchronous][`thingbuf::mpsc`]
|
|
to slots in the buffer by reference. It's also [asynchronous][`thingbuf::mpsc`]
|
|
-and [blocking][`thingbuf::mpsc::sync`] bounded MPSC channels implemented using
|
|
|
|
|
|
+and [blocking][`thingbuf::mpsc::blocking`] bounded MPSC channels implemented using
|
|
the ring buffer.
|
|
the ring buffer.
|
|
|
|
|
|
### When Should I Use It?
|
|
### When Should I Use It?
|
|
@@ -38,7 +38,7 @@ the ring buffer.
|
|
[`thingbuf::mpsc`] is a competitive choice for a general-purpose
|
|
[`thingbuf::mpsc`] is a competitive choice for a general-purpose
|
|
MPSC channel in most use cases.
|
|
MPSC channel in most use cases.
|
|
|
|
|
|
- Both [asynchronous][`thingbuf::mpsc`] and [blocking][`thingbuf::mpsc::sync`]
|
|
|
|
|
|
+ Both [asynchronous][`thingbuf::mpsc`] and [blocking][`thingbuf::mpsc::blocking`]
|
|
MPSC channels are available, so `thingbuf` can be used in place
|
|
MPSC channels are available, so `thingbuf` can be used in place
|
|
of asynchronous channels like [`futures::channel::mpsc`] *and* blocking
|
|
of asynchronous channels like [`futures::channel::mpsc`] *and* blocking
|
|
channels like [`std::sync::mpsc::sync_channel`].
|
|
channels like [`std::sync::mpsc::sync_channel`].
|
|
@@ -198,11 +198,11 @@ feature flag requries Rust 1.60+.
|
|
So, "thingbuf".
|
|
So, "thingbuf".
|
|
|
|
|
|
[`thingbuf::mpsc`]: https://docs.rs/thingbuf/0.1/thingbuf/mpsc/index.html
|
|
[`thingbuf::mpsc`]: https://docs.rs/thingbuf/0.1/thingbuf/mpsc/index.html
|
|
-[`thingbuf::mpsc::sync`]: https://docs.rs/thingbuf/0.1/thingbuf/mpsc/sync/index.html
|
|
|
|
|
|
+[`thingbuf::mpsc::blocking`]: https://docs.rs/thingbuf/0.1/thingbuf/mpsc/blocking/index.html
|
|
[static-queue]: https://docs.rs/thingbuf/0.1/thingbuf/struct.StaticThingBuf.html
|
|
[static-queue]: https://docs.rs/thingbuf/0.1/thingbuf/struct.StaticThingBuf.html
|
|
[static-mpsc]: https://docs.rs/thingbuf/0.1./thingbuf/mpsc/struct.StaticChannel.html
|
|
[static-mpsc]: https://docs.rs/thingbuf/0.1./thingbuf/mpsc/struct.StaticChannel.html
|
|
[`futures::channel::mpsc`]: https://docs.rs/futures/latest/futures/channel/mpsc/index.html
|
|
[`futures::channel::mpsc`]: https://docs.rs/futures/latest/futures/channel/mpsc/index.html
|
|
[`std::sync::mpsc::sync_channel`]: https://doc.rust-lang.org/stable/std/sync/mpsc/fn.sync_channel.html
|
|
[`std::sync::mpsc::sync_channel`]: https://doc.rust-lang.org/stable/std/sync/mpsc/fn.sync_channel.html
|
|
[`tokio::sync::mpsc`]: https://docs.rs/tokio/latest/tokio/sync/mpsc/index.html
|
|
[`tokio::sync::mpsc`]: https://docs.rs/tokio/latest/tokio/sync/mpsc/index.html
|
|
[`tracing`]: https://crates.io/crates/tracing
|
|
[`tracing`]: https://crates.io/crates/tracing
|
|
-[`crossbeam-channel`]: https://crates.io/crates/crossbeam-channel
|
|
|
|
|
|
+[`crossbeam-channel`]: https://crates.io/crates/crossbeam-channel
|