Skip to main content

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:

rars info archive.rar
rars test archive.rar
rars x archive.rar out/

Create archives with specific RAR generation:

rars a --format rar29 archive.rar files...
rars a --format rar50 --solid --auto-filter archive.rar files...
rars a --format rar70 --store --volume-size 10m archive.part1.rar files...

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.

RAR 5 and RAR 7 archives are written in a single pass without being held in memory, so the peak stays flat whatever the inputs weigh. Members compress into temporary files under --temp-dir, and --memory-limit (256MB by default) bounds the working set: raise it to compress more blocks at once, which on a machine with many cores is what limits throughput. The number of --threads defaults to your core count.

RAR 5 and RAR 7 look for a data filter by default, which is worth around 6% on executables and costs compression time rather than memory; --no-filter turns it off, and solid archives do not use one because they share a dictionary across members. Choosing a filter, and comparing candidate settings at --level 5, both need a whole member in memory, and fall back to streaming without them when the budget is too small to allow it. Per-file comments, PPMd and the RAR 1.3-4.x formats still assemble archives in memory; the CLI warns before doing that with a large input.

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:

cargo test --workspace --all-targets

Generate a local coverage report:

rustup component add llvm-tools-preview
./scripts/coverage.py

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rars-0.6.0.tar.gz (4.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rars-0.6.0-cp310-abi3-win_amd64.whl (958.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

rars-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

rars-0.6.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

rars-0.6.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.3 MB view details)

Uploaded CPython 3.10+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file rars-0.6.0.tar.gz.

File metadata

  • Download URL: rars-0.6.0.tar.gz
  • Upload date:
  • Size: 4.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rars-0.6.0.tar.gz
Algorithm Hash digest
SHA256 cc50a2af93ff7a6e3e54310b73cb88613e8248253813fd5faff17d6d323adc6b
MD5 5ba5631d1eb6c0568d4061309e505f1e
BLAKE2b-256 3edd1fdf3e68cab6c4d770e9e48959c3efa8f29e2959eb8ff57d0519ce871477

See more details on using hashes here.

Provenance

The following attestation bundles were made for rars-0.6.0.tar.gz:

Publisher: release.yml on bitplane/rars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rars-0.6.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: rars-0.6.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 958.2 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rars-0.6.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5e0d0c0294e3239dd4051869b4199874a007021cc5139ce705404d86c57a7f72
MD5 b9f929d3b569858491c054d2f56a97a5
BLAKE2b-256 6e538496d7fc9f5d78e8bacff0190698db0f1dbe72a1f1abb89eac9a031db48d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rars-0.6.0-cp310-abi3-win_amd64.whl:

Publisher: release.yml on bitplane/rars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rars-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rars-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86106855f584f6b760e665f23a4736d037f4b2be119839ae681a99cbda969a59
MD5 13ada979d6b04662e1419f505de40977
BLAKE2b-256 8abf8a57832dc4bfde790e2aa0ea74822e50186bfa360d7f826f1a06d2b33aed

See more details on using hashes here.

Provenance

The following attestation bundles were made for rars-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on bitplane/rars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rars-0.6.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rars-0.6.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0499996d09ec4c590b608795e760bb8eaef6f0c0a17fed1dc12f734e6da2d6f8
MD5 2a6b61e1a20c21a3764d844f211d1950
BLAKE2b-256 e460ba4176e8965d72d67bcef1a8c1b8eb0544fe40ef0391bff186c246034718

See more details on using hashes here.

Provenance

The following attestation bundles were made for rars-0.6.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on bitplane/rars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rars-0.6.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rars-0.6.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 fce449037be53d76a6d9c863f6c1d4e15cb909e409bdbce09046f75f7871ceb7
MD5 e53540f19b7d03bcaa9ae39e6e1036ac
BLAKE2b-256 d40725c6c46391d5265369ac7048b1411c3756d1abf3ad2daaed0ea6adfce8fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for rars-0.6.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on bitplane/rars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.9.3

5 files

0.9.2

5 files

0.9.1

5 files

0.9.0

5 files

0.8.0

5 files

0.7.4

5 files

0.7.3

5 files

This release

0.6.0 This release

5 files

0.5.2

5 files

0.5.1

5 files

0.5.0

5 files

0.4.9

5 files

0.4.8

5 files

0.4.7

5 files

0.4.6

5 files

0.4.5

5 files

0.4.4

5 files

0.4.3

4 files

0.4.2

5 files

0.4.1

5 files

0.4.0

5 files

0.3.2

5 files

0.3.1

5 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page