rarfile - RAR archive reader for Python

This is Python module for RAR archive reading. The interface follows the style of zipfile. Licensed under ISC license.

Features:

  • Supports both RAR3 and RAR5 format archives.

  • Supports multi volume archives.

  • Supports Unicode filenames.

  • Supports password-protected archives.

  • Supports archive and file comments.

  • Archive parsing and non-compressed files are handled in pure Python code.

  • Compressed files are extracted by executing external tool: unrar (preferred), unar, 7zip or bsdtar.

  • Works with Python 3.6+.

Backends:

Backend

Status

Notes

unrar

Supported

  • Recommended: full format support.

  • Non-free software, but free to use.

unar

Supported

  • Not usable on Windows: last build is from 2013 (v1.8.1) that does support output to stdout.

  • Does not support RAR2 locked files.

  • Does not support RAR5 Blake2 hash checking.

7zip

Supported

  • RAR support not available on Debian/Ubuntu repos.

p7zip

Supported

  • Unmaintained?

  • Requires p7zip-rar package on Debian/Ubuntu.

bsdtar

Supported

  • Not recommended: limited RAR format support.

  • Does not support multi-volume archives.

  • Does not support solid archives.

  • Does not support password-protected archives.

  • Does not support RARVM-based compression filters.

unrar-free

Supported

  • Supports output to stdout (v0.2.0).

  • Based on libarchive so similar format support as bsdtar but supports multi-volume (v0.3.0).

Links:

Documentation:

Indices and tables