# moirai-parallel
[](https://crates.io/crates/moirai-parallel)
[](https://docs.rs/moirai-parallel)
Synchronous data-parallel primitives for the
[Moirai](https://github.com/ryancinsight/Moirai) runtime — the rayon-style
surface. This is the **parallel** domain (throughput over data), distinct from
the concurrent domain in `moirai-async`. Every operation is fully synchronous
(no `async`, no `.await`), so it is safe inside pure compute kernels without
async contagion, and operates on borrowed slices with in-place mutation.
Strategy is a zero-sized `ExecutionPolicy` type — `Sequential`, `Parallel`, or
`Adaptive` — chosen at compile time, so every call monomorphizes with no dynamic
dispatch. `.par()` / `.par_mut()` return `Adaptive` handles, which parallelize at
or above `ADAPTIVE_PARALLEL_THRESHOLD` and run sequentially below it.
```toml
[dependencies]
moirai-parallel = "0.5"
```
```rust
use moirai_parallel::{ParallelSlice, ParallelSliceMut};
let v: Vec<u64> = (0..1000).collect();
let sum = v.par().map_reduce(0, |&x| x, |a, b| a + b); // auto-routes
let mut m = v.clone();