# par-core

A wrapper for various parallelization library for Rust.
This crate currently supports

- [`chili`](https://github.com/dragostis/chili)
- [`rayon`](https://github.com/rayon-rs/rayon)
- Disable parallelization.

# Usage

If you are developing a library, you should not force the parallelization library, and let the users choose the parallelization library.

## Final application

If you are developing a final application, you can use cargo feature to select the parallelization library.

### `chili`

```toml
[dependencies]
par-core = { version = "1.0.3", features = ["chili"] }
```

### `rayon`

```toml
[dependencies]
par-core = { version = "1.0.3", features = ["rayon"] }
```

### Disable parallelization

```toml
[dependencies]
par-core = { version = "1.0.3", default-features = false }
```

## Library developers

If you are developing a library, you can simply depend on `par-core` without any features.
**Note**: To prevent a small mistake of end-user making the appplication slower, `par-core` emits a error message using a default feature.
So if you are a library developer, you should specify `default-features = false`.

```toml
[dependencies]
par-core = { version = "1.0.3", default-features = false }
```

# License

This project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.