doc: add readthedocs config
[rarfile.git] / README.rst
blobdf670cf3af62ff49f12cd792ff3028ddb7c3c863
2 rarfile - RAR archive reader for Python
3 =======================================
5 This is Python module for RAR_ archive reading.
6 The interface follows the style of zipfile_.
7 Licensed under ISC_ license.
9 Features:
11 * Supports both RAR3 and RAR5 format archives.
12 * Supports multi volume archives.
13 * Supports Unicode filenames.
14 * Supports password-protected archives.
15 * Supports archive and file comments.
16 * Archive parsing and non-compressed files are handled in pure Python code.
17 * Compressed files are extracted by executing external tool:
18   unrar_ (preferred), unar_, 7zip_ or bsdtar_.
19 * Works with Python 3.6+.
21 .. _RAR: https://en.wikipedia.org/wiki/RAR_%28file_format%29
22 .. _zipfile: https://docs.python.org/3/library/zipfile.html
23 .. _ISC: https://en.wikipedia.org/wiki/ISC_license
24 .. _bsdtar: https://github.com/libarchive/libarchive
25 .. _unrar: https://www.rarlab.com/
26 .. _unar: https://theunarchiver.com/command-line
27 .. _7zip: https://www.7-zip.org/
29 Backends:
31 +-------------+----------------------+-----------------------------------------------------+
32 | Backend     | Status               | Notes                                               |
33 +=============+======================+=====================================================+
34 | unrar_      | Supported            | * Recommended: full format support.                 |
35 |             |                      | * Non-free software, but free to use.               |
36 +-------------+----------------------+-----------------------------------------------------+
37 | unar_       | Supported            | * Not usable on Windows: last build is from 2013    |
38 |             |                      |   (v1.8.1) that does support output to stdout.      |
39 |             |                      | * Does not support RAR2 locked files.               |
40 |             |                      | * Does not support RAR5 Blake2 hash checking.       |
41 +-------------+----------------------+-----------------------------------------------------+
42 | 7zip_       | Supported            | * RAR support not available on Debian/Ubuntu repos. |
43 +-------------+----------------------+-----------------------------------------------------+
44 | p7zip_      | Supported            | * Unmaintained?                                     |
45 |             |                      | * Requires ``p7zip-rar`` package on Debian/Ubuntu.  |
46 +-------------+----------------------+-----------------------------------------------------+
47 | bsdtar_     | Supported            | * Not recommended: limited RAR format support.      |
48 |             |                      | * Does not support multi-volume archives.           |
49 |             |                      | * Does not support solid archives.                  |
50 |             |                      | * Does not support password-protected archives.     |
51 |             |                      | * Does not support RARVM-based compression filters. |
52 +-------------+----------------------+-----------------------------------------------------+
53 | unrar-free_ | Supported            | * Supports output to stdout (v0.2.0).               |
54 |             |                      | * Based on libarchive so similar format support     |
55 |             |                      |   as ``bsdtar`` but supports multi-volume (v0.3.0). |
56 +-------------+----------------------+-----------------------------------------------------+
58 .. _p7zip: https://sourceforge.net/projects/p7zip/
59 .. _unrar-free: https://gitlab.com/bgermann/unrar-free
61 Links:
63 - `Documentation`_
64 - `Downloads`_
65 - `Git`_ repo
67 .. _Git: https://github.com/markokr/rarfile
68 .. _Downloads: https://pypi.org/project/rarfile/#files
69 .. _Documentation: https://rarfile.readthedocs.io/