89 lines
2.8 KiB
Markdown
89 lines
2.8 KiB
Markdown
# async-compression
|
|
|
|
[![crates.io version][1]][2] ![build status][3]
|
|
[![downloads][5]][6] [![docs.rs docs][7]][8]
|
|
![MIT or Apache 2.0 licensed][9]
|
|
[![dependency status][10]][11]
|
|
|
|
This crate provides adaptors between compression crates and Rust's modern
|
|
asynchronous IO types.
|
|
|
|
- [Documentation][8]
|
|
- [Crates.io][2]
|
|
- [Releases][releases]
|
|
|
|
## Development
|
|
|
|
When developing you will need to enable appropriate features for the different
|
|
test cases to run, the simplest is `cargo test --all-features`, but you can
|
|
enable different subsets of features as appropriate for the code you are
|
|
testing to avoid compiling all dependencies, e.g. `cargo test --features
|
|
tokio,gzip`.
|
|
|
|
To prepare for a pull request, you can run several other checks:
|
|
|
|
1. `fmt`
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
cargo clippy --no-deps
|
|
```
|
|
|
|
2. `build`
|
|
|
|
```bash
|
|
cargo build --lib --all-features
|
|
```
|
|
|
|
3. `nextest`
|
|
|
|
```bash
|
|
cargo --locked nextest run --workspace --all-features
|
|
```
|
|
|
|
4. `hack check`
|
|
|
|
```bash
|
|
cargo hack check --workspace --feature-powerset --all-targets --skip 'all,all-algorithms,all-implementations'
|
|
```
|
|
|
|
5. `wasm32` - Linux only
|
|
|
|
```bash
|
|
gh release download --repo WebAssembly/wasi-sdk --pattern 'wasi-sysroot-*.tar.gz'
|
|
mkdir -p wasi-sysroot
|
|
tar xf wasi-sysroot-*.tar.gz --strip-components=1 -C wasi-sysroot
|
|
|
|
rustup target add wasm32-wasip1-threads
|
|
|
|
export "CFLAGS_wasm32_wasip1_threads=--sysroot=\"${PWD}/wasi-sysroot\" -I\"${PWD}/wasi-sysroot/include/wasm32-wasip1-threads\" -L-I\"${PWD}/wasi-sysroot/lib/wasm32-wasip1-threads\""
|
|
cargo build --lib --features all-implementations,brotli,bzip2,deflate,gzip,lz4,lzma,xz,zlib,zstd,deflate64 --target wasm32-wasip1-threads
|
|
```
|
|
|
|
## License
|
|
|
|
Licensed under either of
|
|
|
|
- [Apache License, Version 2.0](LICENSE-APACHE)
|
|
- [MIT license](LICENSE-MIT)
|
|
|
|
at your option.
|
|
|
|
### Contribution
|
|
|
|
Unless you explicitly state otherwise, any contribution intentionally submitted
|
|
for inclusion in the work by you shall be dual licensed as above, without any
|
|
additional terms or conditions.
|
|
|
|
[1]: https://img.shields.io/crates/v/async-compression.svg?style=flat-square
|
|
[2]: https://crates.io/crates/async-compression
|
|
[3]: https://img.shields.io/github/actions/workflow/status/Nullus157/async-compression/base.yml?style=flat-square
|
|
[5]: https://img.shields.io/crates/d/async-compression.svg?style=flat-square
|
|
[6]: https://crates.io/crates/async-compression
|
|
[7]: https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square
|
|
[8]: https://docs.rs/async-compression
|
|
[9]: https://img.shields.io/crates/l/async-compression.svg?style=flat-square
|
|
[10]: https://deps.rs/crate/async-compression/latest/status.svg?style=flat-square
|
|
[11]: https://deps.rs/crate/async-compression
|
|
[releases]: https://github.com/Nullus157/async-compression/releases
|