3 ms·
To give more background on this: · crossbeam is a building block used in Rayon, which is Rust's main data parallelism library, roughly similar to OpenMP. · cr
by pornel 5y ago
To give more background on this:
· crossbeam is a building block used in Rayon, which is Rust's main data parallelism library, roughly similar to OpenMP.
· crossbeam channels are very fast. They're in the same league as golang, sometimes faster (depending how you measure of course).
· crossbeam is an order of magnitude faster than channels in the Rust's standard library, while being more powerful and simpler to use. This is an example where experimentation in a 3rd party crate paid off compared to the standard library where a basic implementation went to die.
· it integrates with Rust's borrow checker of course, so you can use complex multi-threaded constructs (e.g. share stack-allocated objects between threads) without fear of data races or use-after-free.
- ChrisSD 5y agoNote that there are plans to integrate crossbeam's channel implementation into the standard library. This won't change the public API but would at least vastly improve the implementation. A similar thing was done with changing the implementation of `HashMap` to be a wrapper around the `hashbrown` library.