# 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