niffler
Simple and transparent support for compressed files.
This library provides two main features:
- sniffs out compression formats from input files and returns a Read trait object ready for consumption.
- Create a Writer initialized with compression ready for writing.
The goal is to lower the barrier to open and use a file, especially in bioinformatics workflows.
Similar project
Many similar projects exist in other languages:
- C: rbread
- Python: xphyle
- Perl: AnyUncompress
- go: Archiver
Development
niffler development is open, and pull requests are welcome!
Before creating your pull request, please try to write a test and benchmark (if possible). Some commands we suggest running to help with these tasks:
cargo fmt
cargo test
cargo clippy
To run tests use:
cargo test --all-features
To test benchmark run:
cargo test --benches --all-features
To run all benchmark use:
cargo bench --all-features
As a shortcut, you can also run make,
which will execute all these commands.
License
Licensed under either of these:
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or https://opensource.org/licenses/MIT)
Contributing
Unless you explicitly state otherwise, any contribution you intentionally submit for inclusion in the work, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.