Metadata-Version: 2.4
Name: rars
Version: 0.9.1
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Rust
Classifier: Topic :: System :: Archiving :: Compression
License-File: COPYING
Summary: Python bindings for rars RAR archive toolkit
Home-Page: https://github.com/bitplane/rars
Author-email: Yehor Smoliakov <yehors@ukr.net>, Gareth Davidson <gaz@bitplane.net>
License-Expression: MIT OR Apache-2.0
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# rars

A Rust implementation of RAR.

* 🏠 [home](https://bitplane.net/dev/rust/rars)
  * 🪵 [blog](https://bitplane.net/log/2026/05/rars/)
* 📦 [downloads](https://github.com/bitplane/rars/releases)
  * 🦀 [crates](https://crates.io/crates/rars)
  * 🐍 [pypi](https://pypi.org/project/rars)
  * 📜 [npm](https://www.npmjs.com/package/@bitplane/rars)
* 🐱 [source](https://github.com/bitplane/rars)
  * 📃 [spec](https://github.com/bitplane/rar-research)

`rars` is free software for compression, decompression and recovery of RAR
archives. It supports all the archive types I could find - from the early `RE~^`
ones from the DOS days all the way through to RAR 7. It comes with a Rust
library, a CLI, Python and TypeScript bindings.

It's a bit slower than WinRAR, it uses more memory and has slightly worse
compression. It could probably use more testing, too. Other than that it's in
pretty good shape.

## Usage

The API is in the `rars` crate, which is used by the Python and TypeScript
bindings. For the CLI, run:

`cargo install rars-cli`.

To inspect, test, and extract archives:

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

To create archives with a specific RAR generation:

```sh
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,
comments, RARVM filters, RAR5 quick-open records, recovery records and header
encryption. There are a lot of things I won't list here, so run `rars --help`
for more details.

## Bindings

Python bindings are published to [pypi](https://pypi.org/project/rars/), so you
can `pip install rars`. To build locally, it's `just python`.

For JS it's built to WebAssembly and published to
[npm](https://www.npmjs.com/package/@bitplane/rars);
`npm install @bitplane/rars`. It reads and writes in the browser and in Node,
with no native module. To build locally, type `just npm`.

