rar

Crates.iorar
lib.rsrar
version0.4.0
created_at2018-08-31 14:07:46.86974+00
updated_at2025-11-05 17:26:08.565191+00
descriptionRust native RAR extractor based upon nom
homepagehttps://github.com/Roba1993/RAR
repositoryhttps://github.com/Roba1993/RAR
max_upload_size
id82360
size78,164
Robert Schütte (Roba1993)

documentation

README

RAR Rust

This crate provides a Rust native functionality to list and extract RAR files (Right now with limited functionality!)

Please have a look in the test section of the file src/lib.rs to see in detail which features are supported right now and how to use this crate.

A basic example to extract the complete archive:

extern crate rar;

// Get the archive information and extract everything
let archive = rar::Archive::extract_all(
    "assets/rar5-save-32mb-txt.rar",
    "target/rar-test/rar5-save-32mb-txt/",
    "").unwrap();

// Print out the archive structure information
println!("Result: {:?}", archive);

Version 0.4.0

This version is functionally equivalent to 0.3.0 but includes:

  • Updated dependencies for better compatibility
  • Fixed CBC decryption implementation for encrypted archives
  • Improved code quality and Rust idioms
  • All tests now pass (32/32)

Features

RAR 5

  • Extract archive with single File
  • Extract archive with multiple Files
  • Extract split archive with multiple files
  • Extract encrypted archive
  • Extract compression SAVE
  • Extract compression FASTEST
  • Extract compression FAST
  • Extract compression NORMAL
  • Extract compression GOOD
  • Extract compression BEST

RAR 4

  • Extract archive with single File
  • Extract archive with multiple Files
  • Extract split archive with multiple files
  • Extract encrypted archive
  • Extract compression SAVE
  • Extract compression FASTEST
  • Extract compression FAST
  • Extract compression NORMAL
  • Extract compression GOOD
  • Extract compression BEST

Contributing

Please contribute!

The goal is to make this crate feature complete :)

If you need any kind of help, open an issue or write me an mail. Pull requests are welcome!

License

Copyright © 2018 Robert Schütte

Distributed under the MIT License.

Commit count: 0

cargo fmt