rars
A Rust implementation of RAR.
Current Status
rars covers the RAR lineage from early RE~^ archives through RAR 7,
compression and decompression. It's getting faster, and kinda works.
Rust API
Use the rars crate for Rust applications and libraries. Since 0.4, the
lower-level rars-format, rars-codec, rars-crypto, rars-crc32, and
rars-recovery crates are folded into rars; those standalone crates ended at
0.3.x. Applications should depend on rars, and command-line installs should
use rars-cli.
CLI
Inspect, test, and extract archives:
Create archives with specific RAR generation:
The writer supports stored and compressed members, split volumes, passwords,
header encryption where implemented, comments, RARVM filters, RAR5 quick-open
records, and supported recovery records. Run rars --help for more info.
By default, --memory-limit is set to 256MB and the number of --threads is
your core count. This might limit compression on machines with lots of CPU
cores; experiment and override as required.
Python bindings
Python bindings are published to pypi, so you
can pip install rars. To build locally, it's maturin develop.
Development
Run the test suite:
Generate a local coverage report:
The script prints a line-coverage summary, saves it to
target/coverage/summary.txt, and writes HTML output to
target/coverage/html/library/index.html and target/coverage/html/cli/index.html.