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 Not supported
  • Unusable: Does not support output to stdout.
  • Based on libarchive so similar format support as bsdtar.

Links:

Documentation:

Indices and tables