Skip to content

Commit 96c2745

Browse files
authored
Update README
- move algorithm list to top of document - Add note about memory requirements - Drop warning for test data
1 parent aff8210 commit 96c2745

1 file changed

Lines changed: 48 additions & 56 deletions

File tree

README.rst

Lines changed: 48 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,51 @@
3737
py7zr is a library and utility to support 7zip archive compression, decompression,
3838
encryption and decryption written by Python programming language.
3939

40+
Compression algorithms
41+
======================
42+
43+
'py7zr' supports algorithms and filters which `lzma module`_ and `liblzma`_ support,
44+
and supports BZip2 and Deflate that are implemented in python core libraries,
45+
It also supports ZStandard, Brotli and PPMd with third party libraries.
46+
47+
'py7zr' is also able to encrypt and decrypt data using 3rd party encryption library.
48+
49+
50+
Supported algorithms
51+
--------------------
52+
53+
* compress
54+
* LZMA2
55+
* LZMA
56+
* Bzip2
57+
* Deflate
58+
* Copy
59+
* ZStandard
60+
* Brotli
61+
* Deflate64 (Decompression only)
62+
* PPMd (Experimental)
63+
64+
* crypt
65+
* 7zAES
66+
67+
* Filters
68+
* Delta
69+
* BCJ(X86,ARMT,ARM,PPC,SPARC,IA64)
70+
71+
- A feature handling symbolic link is basically compatible with 'p7zip' implementation,
72+
but not work with original 7-zip because the original does not implement the feature.
73+
74+
- ZStandard and Brotli is not default methods of 7-zip, so these archives are considered
75+
not to be compatible with original 7-zip on windows/p7zip on linux/mac.
76+
77+
Not supported algorithms
78+
------------------------
79+
80+
* BCJ2
81+
82+
- liblzma, which Python's standard lzma module depends, does not provide BCJ2 filter.
83+
84+
4085

4186
Install
4287
=======
@@ -294,43 +339,6 @@ Following improvements are included in CPython 3.10
294339
.. _`PyPy3-3090`: https://foss.heptapod.net/pypy/pypy/-/issues/3090
295340
.. _`PyPy3-3242`: https://foss.heptapod.net/pypy/pypy/-/issues/3242
296341

297-
Compression Methods supported
298-
=============================
299-
300-
'py7zr' supports algorithms and filters which `lzma module`_ and `liblzma`_ support.
301-
It also support BZip2 and Deflate that are implemented in python core libraries,
302-
and ZStandard with third party libraries.
303-
304-
Supported algorithms are:
305-
306-
* compress
307-
* LZMA2
308-
* LZMA
309-
* Bzip2
310-
* Deflate
311-
* Copy
312-
* ZStandard
313-
* Brotli
314-
* Deflate64 (Decompression only)
315-
* PPMd (Experimental)
316-
317-
* crypt
318-
* 7zAES
319-
320-
* Filters
321-
* Delta
322-
* BCJ(X86,ARMT,ARM,PPC,SPARC,IA64)
323-
324-
* No support
325-
* BCJ2
326-
327-
- A feature handling symbolic link is basically compatible with 'p7zip' implementation,
328-
but not work with original 7-zip because the original does not implement the feature.
329-
330-
- ZStandard and Brotli is not default methods of 7-zip, so these archives are considered
331-
not to be compatible with original 7-zip on windows/p7zip on linux/mac.
332-
- liblzma, which Python's standard lzma module depends, does not provide BCJ2 filter.
333-
- Deflate64 is proprietary algorithm.
334342

335343

336344
Dependencies
@@ -374,6 +382,9 @@ py7zr works well, but slower than `7-zip` and `p7zip` C/C++ implementation by se
374382
When compression/decompression **speed** is important, it is recommended to use these
375383
alternatives through `subprocess.run` python interface.
376384

385+
py7zr consumes some memory to decompress and compress data. It requires about 300MiB - 700MiB free memory to work well at least.
386+
387+
377388
Use Cases
378389
=========
379390

@@ -408,22 +419,3 @@ You should have received a copy of the GNU Lesser General Public
408419
License along with this library; if not, write to the Free Software
409420
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
410421

411-
WARNING
412-
=======
413-
414-
**Test archive data, which affected a malware, have been existed from Aug, 2020 - 20, Jan, 2021!**
415-
416-
All the git history is re-writed, so please remove your local and fork copy of the git repository,
417-
and clone again(if necessary)!
418-
419-
Problematic file is named `issue_218.7z` and `issue_218_2.7z`.
420-
421-
**There is NO affected in library itself.** and the test execution also does not extract the malware file.
422-
There is no problem when you install py7zr with `pip` command.
423-
424-
Release that has a clean source:
425-
426-
- v0.11.3 and later
427-
- v0.10.2
428-
- v0.9.10
429-
- v0.9.4 and before

0 commit comments

Comments
 (0)