PackageTrack
Sign in Get early access

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 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 43
  1. 0.5.16 06 Jul 2026
    Release notes
    • Improve support for rust-analyzer auto-completion of code inside select!/select_biased! macro. (#1240)
    • Make never const. (#1250)
    Open source →
    Release notes
    • Improve support for rust-analyzer auto-completion of code inside select!/select_biased! macro. (#1240)
    • Make never const. (#1250)
    Open source →
  2. 0.5.15 08 Apr 2025
    Release notes
    • Fix regression introduced in 0.5.12 that can lead to a double free when dropping unbounded channel. (#1187)
    Open source →
    Release notes
    • Fix regression introduced in 0.5.12 that can lead to a double free when dropping unbounded channel. (#1187)
    Open source →
  3. 0.5.14 15 Dec 2024 withdrawn
    Release notes

    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_biased function. (#1150)
    • Remove inefficient spinning. (#1154)
    • Suppress buggy clippy::zero_repeat_side_effects lint in macro generated code. (#1123)
    Open source →
  4. 0.5.13 19 May 2024 withdrawn
    Release notes

    Note: This release has been yanked due to bug fixed in 0.5.15.

    • Add select_biased! macro. (#1040)
    Open source →
  5. 0.5.12 28 Feb 2024 withdrawn
    Release notes

    Note: This release has been yanked due to bug fixed in 0.5.15.

    • Fix memory leak in unbounded channel. (#1084)
    Open source →
  6. 0.5.11 08 Jan 2024
    Release notes
    • Remove dependency on cfg-if. (#1072)
    Open source →
  7. 0.5.10 24 Dec 2023
    Release notes
    • Relax the minimum supported Rust version to 1.60. (#1056)
    • Optimize Drop implementation of bounded channel. (#1057)
    Open source →
  8. 0.5.9 13 Dec 2023
    Release notes
    • Bump the minimum supported Rust version to 1.61. (#1037)
    Open source →
  9. 0.5.8 09 Apr 2023
    Release notes
    • Fix race condition in unbounded channel. (#972)
    Open source →
  10. 0.5.7 28 Feb 2023 withdrawn
    Release notes

    Note: This release has been yanked due to bug fixed in 0.5.8.

    • Improve handling of very large timeout. (#953)
    Open source →
  11. 0.5.6 23 Jul 2022 withdrawn
    Release notes

    Note: This release has been yanked due to bug fixed in 0.5.8.

    • Bump the minimum supported Rust version to 1.38. (#877)
    Open source →
  12. 0.5.5 16 Jun 2022 withdrawn
    Release notes

    Note: This release has been yanked due to bug fixed in 0.5.8.

    • Replace Spinlock with Mutex. (#835)
    Open source →
  13. 0.5.4 18 Mar 2022 withdrawn
    Release notes

    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)
    Open source →
  14. 0.5.3 15 Mar 2022 withdrawn
    Release notes

    Note: This release has been yanked. See #802 for details.

    • Fix panic on very large timeout. (#798)
    Open source →
  15. 0.5.2 08 Jan 2022 withdrawn
    Release notes

    Note: This release has been yanked. See #802 for details.

    • Fix stacked borrows violations when -Zmiri-tag-raw-pointers is enabled. (#763, #764)
    Open source →
  16. 0.5.1 10 Apr 2021 withdrawn
    Release notes

    Note: This release has been yanked due to bug fixed in 0.5.8.

    • Fix memory leak in unbounded channel. (#669)
    Open source →
  17. 0.5.0 12 Oct 2020
    Release notes
    • Update crossbeam-channel to 0.3.
    • Update crossbeam-utils to 0.6.
    • Add AtomicCell, SharedLock, and WaitGroup.
    Open source →
    Release notes
    • Bump the minimum supported Rust version to 1.36.
    • Add at() function.
    • Add Sender::send_deadline() and Receiver::recv_deadline() methods.
    • Add Select::select_deadline() and Select::ready_deadline() methods.
    • Add std (enabled by default) feature for forward compatibility.
    • Allow select! macro compile with forbid(unsafe_code).
    Open source →
  18. 0.4.4 06 Sep 2020
    Release notes
    • Fix bug in release (yanking 0.4.3)
    • Fix UB and breaking change introduced in 0.4.3
    Open source →
  19. 0.4.3 21 Jul 2020 withdrawn
    Release notes

    Note: This release has been yanked. See GHSA-v5m7-53cv-f3hx for details.

    • Change license to "MIT OR Apache-2.0".
    Open source →
  20. 0.4.2 22 Feb 2020
    Release notes
    • Fix bug in release (yanking 0.4.1)
    Open source →
  21. 0.4.1 22 Feb 2020 withdrawn
    Release notes
    • Fix a double-free bug in MsQueue and SegQueue.
    Open source →
    Release notes
    • Avoid time drift in channel::tick. (#456)
    • Fix unsoundness issues by adopting MaybeUninit. (#458)
    Open source →
  22. 0.4.0 06 Nov 2019
    Release notes
    • Bump the minimum required version to 1.28.
    • Bump crossbeam-utils to 0.7.
    Open source →
  23. 0.3.9 24 Jul 2019
    Release notes
    • Fix a bug in reference counting.
    • Optimize recv_timeout().
    • Add Select::remove().
    • Various small improvements, code cleanup, more tests.
    Open source →
  24. 0.3.8 29 Jan 2019
    Release notes
    • Bump the minimum required version of crossbeam-utils.
    Open source →
  25. 0.3.7 28 Jan 2019
    Release notes
    • Remove parking_lot and rand dependencies.
    • Expand documentation.
    • Implement Default for Select.
    • Make size_of::<Receiver<T>>() smaller.
    • Several minor optimizations.
    • Add more tests.
    Open source →
  26. 0.3.6 30 Dec 2018
    Release notes
    • Fix a bug in initialization of unbounded channels.
    Open source →
  27. 0.3.5 30 Dec 2018 withdrawn
    Release notes
    • New implementation for unbounded channels.
    • A number of small performance improvements.
    • Remove crossbeam-epoch dependency.
    Open source →
  28. 0.3.4 16 Dec 2018
    Release notes
    • Bump crossbeam-epoch to 0.7.
    • Improve documentation.
    Open source →
  29. 0.3.3 08 Dec 2018
    Release notes
    • Relax the lifetime in SelectedOperation<'_>.
    • Add Select::try_ready(), Select::ready(), and Select::ready_timeout().
    • Update licensing notices.
    • Improve documentation.
    • Add methods is_disconnected(), is_timeout(), is_empty(), and is_full() on error types.
    Open source →
  30. 0.3.2 16 Nov 2018
    Release notes
    • More elaborate licensing notices.
    Open source →
  31. 0.3.1 09 Nov 2018
    Release notes
    • Update crossbeam-utils to 0.6.
    Open source →
  32. 0.3.0 04 Nov 2018
    Release notes
    • Add a special never channel 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 send in select! is now send(sender, msg) -> res => body.
    • The syntax for recv in select! is now recv(receiver) -> res => body.
    • New, more efficient interface for Select without callbacks.
    • Timeouts can be specified in select!.
    Open source →
  33. 0.2.6 17 Sep 2018
    Release notes
    • Select struct that can add cases dynamically.
    • More documentation (in particular, the FAQ section).
    • Optimize contended sends/receives in unbounded channels.
    Open source →
  34. 0.2.5 11 Sep 2018
    Release notes
    • Use LocalKey::try_with instead of LocalKey::with.
    • Remove helper macros __crossbeam_channel*.
    Open source →
  35. 0.2.4 02 Aug 2018
    Release notes
    • Make select! linearizable with other channel operations.
    • Update crossbeam-utils to 0.5.0.
    • Update parking_lot to 0.6.3.
    • Remove Mac OS X tests.
    Open source →
  36. 0.2.3 20 Jul 2018
    Release notes
    • Add Mac OS X tests.
    • Lower some memory orderings.
    • Eliminate calls to mem::unitialized, which caused bugs with ZST.
    Open source →
  37. 0.2.2 10 Jul 2018
    Release notes
    • Add more tests.
    • Update crossbeam-epoch to 0.5.0
    • Initialize the RNG seed to a random value.
    • Replace libc::abort with std::process::abort.
    • Ignore clippy warnings in select!.
    • Better interaction of select! with the NLL borrow checker.
    Open source →
  38. 0.2.1 12 Jun 2018
    Release notes
    • Fix compilation errors when using select! with #[deny(unsafe_code)].
    Open source →
  39. 0.2.0 11 Jun 2018
    Release notes
    • Implement IntoIterator<Item = T> for Receiver<T>.
    • Add a new select! macro.
    • Add special channels after and tick.
    • Dropping receivers doesn't close the channel anymore.
    • Change the signature of recv, send, and try_recv.
    • Remove Sender::is_closed and Receiver::is_closed.
    • Remove Sender::close and Receiver::close.
    • Remove Sender::send_timeout and Receiver::recv_timeout.
    • Remove Sender::try_send.
    • Remove Select and select_loop!.
    • Remove all error types.
    • Remove Iter, TryIter, and IntoIter.
    • Remove the nightly feature.
    • Remove ordering operators for Sender and Receiver.
    Open source →
  40. 0.1.3 23 May 2018
    Release notes
    • Add Sender::disconnect and Receiver::disconnect.
    • Implement comparison operators for Sender and Receiver.
    • Allow arbitrary patterns in place of msg in recv(r, msg).
    • Add a few conversion impls between error types.
    • Add benchmarks for atomicring and mpmc.
    • Add benchmarks for different message sizes.
    • Documentation improvements.
    • Update crossbeam-epoch to 0.4.0
    • Update crossbeam-utils to 0.3.0
    • Update parking_lot to 0.5
    • Update rand to 0.4
    Open source →
  41. 0.1.2 12 Dec 2017
    Release notes
    • 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.
    Open source →
  42. 0.1.1 27 Nov 2017
    Release notes
    • Implement Debug for Sender, Receiver, Iter, TryIter, IntoIter, and Select.
    • Implement Default for Select.
    Open source →
  43. 0.1.0 26 Nov 2017
    Release notes
    • First implementation of the channels.
    • Add select_loop! macro by @TimNN.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive