5 unstable releases
|0.3.0||Oct 7, 2019|
|0.2.0||Apr 25, 2019|
|0.1.2||Jan 31, 2019|
|0.1.1||Jun 6, 2018|
|0.1.0||May 10, 2018|
#17 in Concurrency
25,563 downloads per month
Used in 28 crates (2 directly)
rustc-rayon is a fork of the Rayon crate. It adds a few "in progress" features that rustc is using, mostly around deadlock detection. These features are not stable and should not be used by others -- though they may find their way into rayon proper at some point. In general, if you are not rustc, you should be using the real rayon crate, not rustc-rayon. =)
rustc-rayon is a fork of rayon. rayon is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE-APACHE and LICENSE-MIT for details. Opening a pull requests is assumed to signal agreement with these licensing terms.
Data-parallelism library that makes it easy to convert sequential computations into parallel
Rayon is lightweight and convenient for introducing parallelism into existing code. It guarantees data-race free executions and takes advantage of parallelism when sensible, based on work-load at runtime.
There are two ways to use Rayon:
- High-level parallel constructs are the simplest way to use Rayon and also typically the most efficient.
- Custom tasks let you divide your work into parallel tasks yourself.
First, you will need to add
rayon to your
Cargo.toml and put
extern crate rayon in your main file (
Next, to use parallel iterators or the other high-level methods,
you need to import several traits. Those traits are bundled into
rayon::prelude. It is recommended that you import
all of these traits at once by adding
use rayon::prelude::* at
the top of each module that uses Rayon methods.
Rayon extends many of the types found in the standard library with
parallel iterator implementations. The modules in the
std itself: so, e.g., the
option module in
Rayon contains parallel iterators for the
Option type, which is
found in the
option module of
std. Similarly, the
collections module in Rayon offers parallel iterator types for
std. You will rarely need to access
these submodules unless you need to name iterator types
See the Rayon FAQ.