# AsParIt - Async Parallel Iterators
[](https://crates.io/crates/asparit)
[](https://docs.rs/asparit)
Asparit implements async parallel iterators. It is mostly based on the idea and the code of
[rayon][rayon]. If you need some more detailed information please refere to the documentation of
[rayon][rayon]. The benefit of asparit is, that the iterator can be driven by a so called executor.
For now three different executors are implemented:
- rayon - Use rayon as executor.
- tokio - Use tokio as executor. This enabled the iterator to support async/await syntax.
- sequential - Simple executor that drives the iterator sequential. This may be usefull for
testing purposes.
[rayon]: https://github.com/rayon-rs/rayon
[tokio]: https://github.com/tokio-rs/tokio
## Example
Simple example to use asparit with the tokio executor.
```rust
use asparit::*;
let s = (0..10)
.into_par_iter()
.sum()
.exec_with(TokioExecutor::default())
.await;
assert_eq!(s, 45);
```
If tokio is setup as the default executor, you can simply use `exec` instead of `exec_with`.
```rust
use asparit::*;
let s = (0..10)
.into_par_iter()
.sum()
.exec()
.await;
assert_eq!(s, 45);
```
## License
Asparit is distributed under the terms of both the MIT license and the
Apache License (Version 2.0). See [LICENSE-APACHE](LICENSE-APACHE) and
[LICENSE-MIT](LICENSE-MIT) for details. Opening a pull requests is
assumed to signal agreement with these licensing terms.