crossbeam-channel
Multi-producer multi-consumer channels for message passing
0.5.16
557M downloads/mo
#178 most downloaded on crates.io
crossbeam-rs/crossbeam
What this package is like to depend on
Last release 1 months ago
06 Jul 2026
Release timing varies
gaps range from 1 weeks to 1.2 years
Nearly every release is documented
notes for 30 of 30 stable releases
13 versions withdrawn
withdrawn after publishing
9 years old
43 releases · first in 2017
1 release in the last 12 months
see the full history below
Release timeline
43 releases · Nov 2017 to Jul 2026Releases
latest 43-
0.5.1606 Jul 2026Release notes
Open source →- Improve support for rust-analyzer auto-completion of code inside
select!/select_biased!macro. (#1240) - Make
neverconst. (#1250)
- Improve support for rust-analyzer auto-completion of code inside
-
0.5.1508 Apr 2025Release notes
Open source →- Fix regression introduced in 0.5.12 that can lead to a double free when dropping unbounded channel. (#1187)
Release notes
Open source →- Fix regression introduced in 0.5.12 that can lead to a double free when dropping unbounded channel. (#1187)
-
0.5.1415 Dec 2024 withdrawnRelease notes
Open source →Note: This release has been yanked due to bug fixed in 0.5.15.
- Fix stack overflow when sending large value to unbounded channel. (#1146, #1147)
- Add
Select::new_biasedfunction. (#1150) - Remove inefficient spinning. (#1154)
- Suppress buggy
clippy::zero_repeat_side_effectslint in macro generated code. (#1123)
-
0.5.1319 May 2024 withdrawnRelease notes
Open source →Note: This release has been yanked due to bug fixed in 0.5.15.
- Add
select_biased!macro. (#1040)
- Add
-
0.5.1228 Feb 2024 withdrawnRelease notes
Open source →Note: This release has been yanked due to bug fixed in 0.5.15.
- Fix memory leak in unbounded channel. (#1084)
-
0.5.1108 Jan 2024 -
0.5.1024 Dec 2023Release notes
Open source →- Relax the minimum supported Rust version to 1.60. (#1056)
- Optimize
Dropimplementation of bounded channel. (#1057)
-
0.5.913 Dec 2023 -
0.5.809 Apr 2023 -
0.5.728 Feb 2023 withdrawnRelease notes
Open source →Note: This release has been yanked due to bug fixed in 0.5.8.
- Improve handling of very large timeout. (#953)
-
0.5.623 Jul 2022 withdrawnRelease notes
Open source →Note: This release has been yanked due to bug fixed in 0.5.8.
- Bump the minimum supported Rust version to 1.38. (#877)
-
0.5.516 Jun 2022 withdrawnRelease notes
Open source →Note: This release has been yanked due to bug fixed in 0.5.8.
- Replace Spinlock with Mutex. (#835)
-
0.5.418 Mar 2022 withdrawnRelease notes
Open source →Note: This release has been yanked due to bug fixed in 0.5.8.
- Workaround a bug in upstream related to TLS access on AArch64 Linux. (#802)
-
0.5.315 Mar 2022 withdrawnRelease notes
Open source →Note: This release has been yanked. See #802 for details.
- Fix panic on very large timeout. (#798)
-
0.5.208 Jan 2022 withdrawnRelease notes
Open source →Note: This release has been yanked. See #802 for details.
- Fix stacked borrows violations when
-Zmiri-tag-raw-pointersis enabled. (#763, #764)
- Fix stacked borrows violations when
-
0.5.110 Apr 2021 withdrawnRelease notes
Open source →Note: This release has been yanked due to bug fixed in 0.5.8.
- Fix memory leak in unbounded channel. (#669)
-
0.5.012 Oct 2020Release notes
Open source →- Update
crossbeam-channelto 0.3. - Update
crossbeam-utilsto 0.6. - Add
AtomicCell,SharedLock, andWaitGroup.
Release notes
Open source →- Bump the minimum supported Rust version to 1.36.
- Add
at()function. - Add
Sender::send_deadline()andReceiver::recv_deadline()methods. - Add
Select::select_deadline()andSelect::ready_deadline()methods. - Add
std(enabled by default) feature for forward compatibility. - Allow
select!macro compile withforbid(unsafe_code).
- Update
-
0.4.406 Sep 2020Release notes
Open source →- Fix bug in release (yanking 0.4.3)
- Fix UB and breaking change introduced in 0.4.3
-
0.4.321 Jul 2020 withdrawnRelease notes
Open source →Note: This release has been yanked. See GHSA-v5m7-53cv-f3hx for details.
- Change license to "MIT OR Apache-2.0".
-
0.4.222 Feb 2020 -
0.4.122 Feb 2020 withdrawnRelease notes
Open source →- Avoid time drift in
channel::tick. (#456) - Fix unsoundness issues by adopting
MaybeUninit. (#458)
- Avoid time drift in
-
0.4.006 Nov 2019 -
0.3.924 Jul 2019Release notes
Open source →- Fix a bug in reference counting.
- Optimize
recv_timeout(). - Add
Select::remove(). - Various small improvements, code cleanup, more tests.
-
0.3.829 Jan 2019 -
0.3.728 Jan 2019Release notes
Open source →- Remove
parking_lotandranddependencies. - Expand documentation.
- Implement
DefaultforSelect. - Make
size_of::<Receiver<T>>()smaller. - Several minor optimizations.
- Add more tests.
- Remove
-
0.3.630 Dec 2018 -
0.3.530 Dec 2018 withdrawnRelease notes
Open source →- New implementation for unbounded channels.
- A number of small performance improvements.
- Remove
crossbeam-epochdependency.
-
0.3.416 Dec 2018 -
0.3.308 Dec 2018Release notes
Open source →- Relax the lifetime in
SelectedOperation<'_>. - Add
Select::try_ready(),Select::ready(), andSelect::ready_timeout(). - Update licensing notices.
- Improve documentation.
- Add methods
is_disconnected(),is_timeout(),is_empty(), andis_full()on error types.
- Relax the lifetime in
-
0.3.216 Nov 2018 -
0.3.109 Nov 2018 -
0.3.004 Nov 2018Release notes
Open source →- Add a special
neverchannel type. - Dropping all receivers now closes the channel.
- The interface of sending and receiving methods is now very similar to those in v0.1.
- The syntax for
sendinselect!is nowsend(sender, msg) -> res => body. - The syntax for
recvinselect!is nowrecv(receiver) -> res => body. - New, more efficient interface for
Selectwithout callbacks. - Timeouts can be specified in
select!.
- Add a special
-
0.2.617 Sep 2018Release notes
Open source →Selectstruct that can add cases dynamically.- More documentation (in particular, the FAQ section).
- Optimize contended sends/receives in unbounded channels.
-
0.2.511 Sep 2018Release notes
Open source →- Use
LocalKey::try_withinstead ofLocalKey::with. - Remove helper macros
__crossbeam_channel*.
- Use
-
0.2.402 Aug 2018Release notes
Open source →- Make
select!linearizable with other channel operations. - Update
crossbeam-utilsto0.5.0. - Update
parking_lotto0.6.3. - Remove Mac OS X tests.
- Make
-
0.2.320 Jul 2018Release notes
Open source →- Add Mac OS X tests.
- Lower some memory orderings.
- Eliminate calls to
mem::unitialized, which caused bugs with ZST.
-
0.2.210 Jul 2018Release notes
Open source →- Add more tests.
- Update
crossbeam-epochto 0.5.0 - Initialize the RNG seed to a random value.
- Replace
libc::abortwithstd::process::abort. - Ignore clippy warnings in
select!. - Better interaction of
select!with the NLL borrow checker.
-
0.2.112 Jun 2018 -
0.2.011 Jun 2018Release notes
Open source →- Implement
IntoIterator<Item = T>forReceiver<T>. - Add a new
select!macro. - Add special channels
afterandtick. - Dropping receivers doesn't close the channel anymore.
- Change the signature of
recv,send, andtry_recv. - Remove
Sender::is_closedandReceiver::is_closed. - Remove
Sender::closeandReceiver::close. - Remove
Sender::send_timeoutandReceiver::recv_timeout. - Remove
Sender::try_send. - Remove
Selectandselect_loop!. - Remove all error types.
- Remove
Iter,TryIter, andIntoIter. - Remove the
nightlyfeature. - Remove ordering operators for
SenderandReceiver.
- Implement
-
0.1.323 May 2018Release notes
Open source →- Add
Sender::disconnectandReceiver::disconnect. - Implement comparison operators for
SenderandReceiver. - Allow arbitrary patterns in place of
msginrecv(r, msg). - Add a few conversion impls between error types.
- Add benchmarks for
atomicringandmpmc. - Add benchmarks for different message sizes.
- Documentation improvements.
- Update
crossbeam-epochto 0.4.0 - Update
crossbeam-utilsto 0.3.0 - Update
parking_lotto 0.5 - Update
randto 0.4
- Add
-
0.1.212 Dec 2017Release notes
Open source →- Allow conditional cases in
select_loop!macro. - Fix typos in documentation.
- Fix deadlock in selection when all channels are disconnected and a timeout is specified.
- Allow conditional cases in
-
0.1.127 Nov 2017Release notes
Open source →- Implement
DebugforSender,Receiver,Iter,TryIter,IntoIter, andSelect. - Implement
DefaultforSelect.
- Implement
-
0.1.026 Nov 2017