zstd 1.5.6.2__tar.gz → 1.5.6.4__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. {zstd-1.5.6.2 → zstd-1.5.6.4}/LICENSE +1 -1
  2. zstd-1.5.6.4/PKG-INFO +512 -0
  3. zstd-1.5.6.4/README.rst +471 -0
  4. {zstd-1.5.6.2 → zstd-1.5.6.4}/setup.py +104 -26
  5. {zstd-1.5.6.2 → zstd-1.5.6.4}/src/python-zstd.c +90 -12
  6. {zstd-1.5.6.2 → zstd-1.5.6.4}/src/python-zstd.h +14 -0
  7. zstd-1.5.6.4/src/zstd.egg-info/PKG-INFO +512 -0
  8. {zstd-1.5.6.2 → zstd-1.5.6.4}/tests/__init__.py +3 -0
  9. {zstd-1.5.6.2 → zstd-1.5.6.4}/tests/base.py +16 -3
  10. {zstd-1.5.6.2 → zstd-1.5.6.4}/tests/test_compress.py +20 -4
  11. {zstd-1.5.6.2 → zstd-1.5.6.4}/tests/test_decompress.py +9 -3
  12. {zstd-1.5.6.2 → zstd-1.5.6.4}/tests/test_speed.py +12 -12
  13. zstd-1.5.6.2/PKG-INFO +0 -344
  14. zstd-1.5.6.2/README.rst +0 -304
  15. zstd-1.5.6.2/src/zstd.egg-info/PKG-INFO +0 -344
  16. {zstd-1.5.6.2 → zstd-1.5.6.4}/MANIFEST.in +0 -0
  17. {zstd-1.5.6.2 → zstd-1.5.6.4}/setup.cfg +0 -0
  18. {zstd-1.5.6.2 → zstd-1.5.6.4}/src/pythoncapi_compat.h +0 -0
  19. {zstd-1.5.6.2 → zstd-1.5.6.4}/src/util.c +0 -0
  20. {zstd-1.5.6.2 → zstd-1.5.6.4}/src/util.h +0 -0
  21. {zstd-1.5.6.2 → zstd-1.5.6.4}/src/zstd.egg-info/SOURCES.txt +0 -0
  22. {zstd-1.5.6.2 → zstd-1.5.6.4}/src/zstd.egg-info/dependency_links.txt +0 -0
  23. {zstd-1.5.6.2 → zstd-1.5.6.4}/src/zstd.egg-info/top_level.txt +0 -0
  24. {zstd-1.5.6.2 → zstd-1.5.6.4}/tests/test_version.py +0 -0
  25. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/allocations.h +0 -0
  26. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/bits.h +0 -0
  27. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/bitstream.h +0 -0
  28. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/compiler.h +0 -0
  29. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/cpu.h +0 -0
  30. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/debug.c +0 -0
  31. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/debug.h +0 -0
  32. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/entropy_common.c +0 -0
  33. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/error_private.c +0 -0
  34. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/error_private.h +0 -0
  35. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/fse.h +0 -0
  36. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/fse_decompress.c +0 -0
  37. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/huf.h +0 -0
  38. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/mem.h +0 -0
  39. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/pool.c +0 -0
  40. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/pool.h +0 -0
  41. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/portability_macros.h +0 -0
  42. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/threading.c +0 -0
  43. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/threading.h +0 -0
  44. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/xxhash.c +0 -0
  45. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/xxhash.h +0 -0
  46. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/zstd_common.c +0 -0
  47. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/zstd_deps.h +0 -0
  48. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/zstd_internal.h +0 -0
  49. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/common/zstd_trace.h +0 -0
  50. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/clevels.h +0 -0
  51. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/fse_compress.c +0 -0
  52. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/hist.c +0 -0
  53. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/hist.h +0 -0
  54. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/huf_compress.c +0 -0
  55. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_compress.c +0 -0
  56. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_compress_internal.h +0 -0
  57. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_compress_literals.c +0 -0
  58. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_compress_literals.h +0 -0
  59. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_compress_sequences.c +0 -0
  60. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_compress_sequences.h +0 -0
  61. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_compress_superblock.c +0 -0
  62. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_compress_superblock.h +0 -0
  63. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_cwksp.h +0 -0
  64. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_double_fast.c +0 -0
  65. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_double_fast.h +0 -0
  66. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_fast.c +0 -0
  67. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_fast.h +0 -0
  68. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_lazy.c +0 -0
  69. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_lazy.h +0 -0
  70. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_ldm.c +0 -0
  71. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_ldm.h +0 -0
  72. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_ldm_geartab.h +0 -0
  73. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_opt.c +0 -0
  74. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstd_opt.h +0 -0
  75. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstdmt_compress.c +0 -0
  76. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/compress/zstdmt_compress.h +0 -0
  77. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/decompress/huf_decompress.c +0 -0
  78. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/decompress/huf_decompress_amd64.S +0 -0
  79. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/decompress/zstd_ddict.c +0 -0
  80. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/decompress/zstd_ddict.h +0 -0
  81. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/decompress/zstd_decompress.c +0 -0
  82. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/decompress/zstd_decompress_block.c +0 -0
  83. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/decompress/zstd_decompress_block.h +0 -0
  84. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/decompress/zstd_decompress_internal.h +0 -0
  85. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_legacy.h +0 -0
  86. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v01.c +0 -0
  87. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v01.h +0 -0
  88. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v02.c +0 -0
  89. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v02.h +0 -0
  90. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v03.c +0 -0
  91. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v03.h +0 -0
  92. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v04.c +0 -0
  93. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v04.h +0 -0
  94. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v05.c +0 -0
  95. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v05.h +0 -0
  96. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v06.c +0 -0
  97. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v06.h +0 -0
  98. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v07.c +0 -0
  99. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/legacy/zstd_v07.h +0 -0
  100. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/zstd.h +0 -0
  101. {zstd-1.5.6.2 → zstd-1.5.6.4}/zstd/lib/zstd_errors.h +0 -0
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015-2022, Sergey Dryabzhinsky, Anton Stuk
1
+ Copyright (c) 2015-2025, Sergey Dryabzhinsky, Anton Stuk
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
zstd-1.5.6.4/PKG-INFO ADDED
@@ -0,0 +1,512 @@
1
+ Metadata-Version: 2.2
2
+ Name: zstd
3
+ Version: 1.5.6.4
4
+ Summary: ZSTD Bindings for Python
5
+ Home-page: https://github.com/sergey-dryabzhinsky/python-zstd
6
+ Author: Sergey Dryabzhinsky, Anton Stuk
7
+ Author-email: sergey.dryabzhinsky@gmail.com
8
+ Maintainer: Sergey Dryabzhinsky
9
+ Maintainer-email: sergey.dryabzhinsky@gmail.com
10
+ License: BSD
11
+ Keywords: zstd,zstandard,compression
12
+ Classifier: License :: OSI Approved :: BSD License
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: Operating System :: POSIX
16
+ Classifier: Programming Language :: C
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 2.7
19
+ Classifier: Programming Language :: Python :: 3.4
20
+ Classifier: Programming Language :: Python :: 3.5
21
+ Classifier: Programming Language :: Python :: 3.6
22
+ Classifier: Programming Language :: Python :: 3.7
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Classifier: Programming Language :: Python :: 3.14
30
+ License-File: LICENSE
31
+ Dynamic: author
32
+ Dynamic: author-email
33
+ Dynamic: classifier
34
+ Dynamic: description
35
+ Dynamic: home-page
36
+ Dynamic: keywords
37
+ Dynamic: license
38
+ Dynamic: maintainer
39
+ Dynamic: maintainer-email
40
+ Dynamic: summary
41
+
42
+ =============
43
+ python-zstd
44
+ =============
45
+
46
+ .. |releaseW| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/build-wheels.yml/badge.svg?tag=v1.5.6.4
47
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/build-wheels.yml
48
+
49
+ .. |masterW| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/build-wheels.yml/badge.svg
50
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/build-wheels.yml
51
+
52
+ .. |cpython27x64| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_x86_64.yml/badge.svg
53
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_x86_64.yml
54
+
55
+ .. |cpython27x86| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_x86.yml/badge.svg
56
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_x86.yml
57
+
58
+ .. |cpython27armhf| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_armhf.yml/badge.svg
59
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython27_armhf.yml
60
+
61
+ .. |cpython34x86| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython34_x86.yml/badge.svg
62
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython34_x86.yml
63
+
64
+ .. |cpython34x64| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython34_x86_64.yml/badge.svg
65
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython34_x86_64.yml
66
+
67
+ .. |cpython35x86| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython35_x86.yml/badge.svg
68
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython35_x86.yml
69
+
70
+ .. |cpython35x64| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython35_x86_64.yml/badge.svg
71
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython35_x86_64.yml
72
+
73
+ .. |cpython36x86| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython36_x86.yml/badge.svg
74
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython36_x86.yml
75
+
76
+ .. |cpython36x64| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython36_x86_64.yml/badge.svg
77
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython36_x86_64.yml
78
+
79
+ .. |cpython37x86| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython37_x86.yml/badge.svg
80
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython37_x86.yml
81
+
82
+ .. |cpython37x64| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython37_x86_64_u24.yml/badge.svg
83
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython37_x86_64_u24.yml
84
+
85
+ .. |cpython38x86| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython38_x86.yml/badge.svg
86
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython38_x86.yml
87
+
88
+ .. |cpython38x64| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython38_x86_64_u24.yml/badge.svg
89
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython38_x86_64_u24.yml
90
+
91
+ .. |cpython39x86| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython39_x86.yml/badge.svg
92
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython39_x86.yml
93
+
94
+ .. |cpython39x64| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython39_x86_64_u24.yml/badge.svg
95
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython39_x86_64_u24.yml
96
+
97
+ .. |cpython310x86u16| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython310_x86_u16.yml/badge.svg
98
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython310_x86_u16.yml
99
+
100
+ .. |cpython310x64u20| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython310_x86_64_u24.yml/badge.svg
101
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython310_x86_64_u24.yml
102
+
103
+ .. |cpython311x86u16| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython311_x86_u16.yml/badge.svg
104
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython311_x86_u16.yml
105
+
106
+ .. |cpython311x64u20| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython311_x86_64_u24.yml/badge.svg
107
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython311_x86_64_u24.yml
108
+
109
+ .. |cpython312x86u16| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython312_x86_u16.yml/badge.svg
110
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython312_x86_u16.yml
111
+
112
+ .. |cpython312x64u20| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython312_x86_64_u20.yml/badge.svg
113
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython312_x86_64_u20.yml
114
+
115
+ .. |cpython313x64u20| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython313_x86_64_u24.yml/badge.svg
116
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython313_x86_64_u24.yml
117
+
118
+ .. |cpython314x64u20| image:: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython314_x86_64_u24.yml/badge.svg
119
+ :target: https://github.com/sergey-dryabzhinsky/python-zstd/actions/workflows/Build_wheels_for_cpython314_x86_64_u24.yml
120
+
121
+ +----------------------+---------------------+
122
+ | wheels for: | status |
123
+ +======================+=====================+
124
+ | cpython 2.7 x86 | |cpython27x86| |
125
+ +----------------------+---------------------+
126
+ | cpython 2.7 x64 | |cpython27x64| |
127
+ +----------------------+---------------------+
128
+ | cpython 2.7 armhf | |cpython27armhf| |
129
+ +----------------------+---------------------+
130
+ | cpython 3.4 x86 | |cpython34x86| |
131
+ +----------------------+---------------------+
132
+ | cpython 3.4 x64 | |cpython34x64| |
133
+ +----------------------+---------------------+
134
+ | cpython 3.5 x86 | |cpython35x86| |
135
+ +----------------------+---------------------+
136
+ | cpython 3.5 x64 | |cpython35x64| |
137
+ +----------------------+---------------------+
138
+ | cpython 3.6 x86 | |cpython36x86| |
139
+ +----------------------+---------------------+
140
+ | cpython 3.6 x64 | |cpython36x64| |
141
+ +----------------------+---------------------+
142
+ | cpython 3.7 x86 | |cpython37x86| |
143
+ +----------------------+---------------------+
144
+ | cpython 3.7 x64 u24 | |cpython37x64| |
145
+ +----------------------+---------------------+
146
+ | cpython 3.8 x86 | |cpython38x86| |
147
+ +----------------------+---------------------+
148
+ | cpython 3.8 x64 u24 | |cpython38x64| |
149
+ +----------------------+---------------------+
150
+ | cpython 3.9 x86 | |cpython39x86| |
151
+ +----------------------+---------------------+
152
+ | cpython 3.9 x64 u24 | |cpython39x64| |
153
+ +----------------------+---------------------+
154
+ | cpython 3.10 x86 u16 | |cpython310x86u16| |
155
+ +----------------------+---------------------+
156
+ | cpython 3.10 x64 u24 | |cpython310x64u20| |
157
+ +----------------------+---------------------+
158
+ | cpython 3.11 x86 u16 | |cpython311x86u16| |
159
+ +----------------------+---------------------+
160
+ | cpython 3.11 x64 u24 | |cpython311x64u20| |
161
+ +----------------------+---------------------+
162
+ | cpython 3.12 x86 u16 | |cpython312x86u16| |
163
+ +----------------------+---------------------+
164
+ | cpython 3.12 x64 u24 | |cpython312x64u20| |
165
+ +----------------------+---------------------+
166
+ | cpython 3.13 x64 u24 | |cpython313x64u20| |
167
+ +----------------------+---------------------+
168
+ | cpython 3.14 x64 u24 | |cpython314x64u20| |
169
+ +----------------------+---------------------+
170
+ | Release | |releaseW| |
171
+ | 1.5.6.4 | |
172
+ +----------------------+---------------------+
173
+ | Master | |masterW| |
174
+ +----------------------+---------------------+
175
+
176
+ Simple python bindings to Yann Collet ZSTD compression library.
177
+
178
+ **Zstd**, short for Zstandard, is a new lossless compression algorithm,
179
+ which provides both good compression ratio *and* speed for your standard compression needs.
180
+ "Standard" translates into everyday situations which neither look for highest possible ratio
181
+ (which LZMA and ZPAQ cover) nor extreme speeds (which LZ4 covers).
182
+
183
+ It is provided as a BSD-license package, hosted on GitHub_.
184
+
185
+ .. _GitHub: https://github.com/facebook/zstd
186
+
187
+
188
+ WARNING!!!
189
+ ----------
190
+
191
+ If you setup 1.0.0.99.1 version - remove it manualy to able to update.
192
+ PIP matching version strings not tuple of numbers.
193
+
194
+ Result generated by versions prior to 1.0.0.99.1 is not compatible with orignial Zstd
195
+ by any means. It generates custom header and can be read only by zstd python module.
196
+
197
+ As of 1.0.0.99.1 version it uses standard Zstd output, not modified.
198
+
199
+ To prevent data loss there is two functions now: ```compress_old``` and ```decompress_old```.
200
+ They are works just like in old versions prior to 1.0.0.99.1.
201
+
202
+ As of 1.1.4 version module build without them by default.
203
+
204
+ As of 1.3.4 version these functions are deprecated and will be removed in future releases.
205
+
206
+ As of 1.5.0 version these functions are removed.
207
+
208
+
209
+ DISCLAIMER
210
+ __________
211
+
212
+ These python bindings are kept simple and blunt.
213
+
214
+ Support of dictionaries and streaming is not planned.
215
+
216
+
217
+ LINKS
218
+ -----
219
+
220
+ * Zstandard: https://github.com/facebook/zstd
221
+ * More full-featured and compatible with Zstandard python bindings by Gregory Szorc: https://github.com/indygreg/python-zstandard
222
+
223
+
224
+ Build from source
225
+ -----------------
226
+
227
+ >>> $ git clone https://github.com/sergey-dryabzhinsky/python-zstd
228
+ >>> $ git submodule update --init
229
+ >>> $ apt-get install python-dev python3-dev python-setuptools python3-setuptools
230
+ >>> $ python setup.py build_ext clean
231
+ >>> $ python3 setup.py build_ext clean
232
+
233
+ And you need to install `libzstd` developer files at least version *1.4.0*:
234
+
235
+ >>> $ dnf install -y libzstd-devel
236
+ # or
237
+ >>> $ apt install -y libzstd-dev
238
+ # or
239
+ >>> $ apk add zstd-dev
240
+
241
+ or do manual installation of zstd from source.
242
+
243
+ Note: Zstd legacy format support disabled by default.
244
+ To build with Zstd legacy versions support - pass ``--legacy`` option to setup.py script:
245
+
246
+ >>> $ python setup.py build_ext --legacy clean
247
+
248
+ When using a PEP 517 builder you can use ``ZSTD_LEGACY`` environment variable instead:
249
+
250
+ >>> $ ZSTD_LEGACY=1 python -m build -w
251
+
252
+ Note: Python-Zstd legacy format support removed since 1.5.0.
253
+ If you need to convert old data - checkout 1.4.9.1 module version. Support of it disabled by default.
254
+ To build with python-zstd legacy format support (pre 1.1.2) - pass ``--pyzstd-legacy`` option to setup.py script:
255
+
256
+ >>> $ python setup.py build_ext --pyzstd-legacy clean
257
+
258
+ But beware! Legacy formats support state is unknown in this case.
259
+ And if your version not equal with python-zstd - tests may not pass.
260
+
261
+ If you're scared of threads you may pass option `--libzstd-no-threads`:
262
+
263
+ >>> $ python setup.py build_ext --libzstd-no-threads clean
264
+
265
+ When using a PEP 517 builder you can use ``ZSTD_THREADS`` environment variable instead:
266
+
267
+ >>> $ ZSTD_THREADS=0 python -m build -w
268
+
269
+ If you're meet some cpu instruction errorrs you may try to disable built-in optimizations and pass option `--libzstd-no-use-asm`:
270
+
271
+ >>> $ python setup.py build_ext --libzstd-no-use-asm clean
272
+
273
+ Or add more speed with option `--libzstd-use-asm-bmi2` to use instructions for new AMD CPU.
274
+ When using a PEP 517 builder you can use ``ZSTD_ASM`` environment variable instead:
275
+ And ``ZST_ASM_BMI2=1`` too for bmi2 use.
276
+
277
+ >>> $ ZSTD_ASM=0 python -m build -w
278
+
279
+ If you want bo build smaller module by size try to use option `--small`, but it will work slower.
280
+
281
+ >>> $ python setup.py build_ext --small clean
282
+
283
+ When using a PEP 517 builder you can use ``ZSTD_SMALL`` environment variable instead:
284
+
285
+ >>> $ ZSTD_SMALL=1 python -m build -w
286
+
287
+ If you want to build with existing distribution of libzstd just add ``--external`` option
288
+
289
+ >>> $ python setup.py build_ext --external clean
290
+
291
+ When using a PEP 517 builder you can use ``ZSTD_EXTERNAL`` environment variable instead:
292
+
293
+ >>> $ ZSTD_EXTERNAL=1 python -m build -w
294
+
295
+ If paths to header file ``zstd.h`` and libraries is uncommon - use common ``build`` params:
296
+ --libraries --include-dirs --library-dirs.
297
+
298
+ >>> $ python setup.py build_ext --external --include-dirs /opt/zstd/usr/include --libraries zstd --library-dirs /opt/zstd/lib clean
299
+
300
+ But If you want to force build with bundled distribution of libzstd just add ``--
301
+ libzstd-bundled`` option
302
+
303
+ >>> $ python setup.py build_ext --libzstd-bundled clean
304
+
305
+ When using a PEP 517 builder you can use ``ZSTD_BUNDLED`` environment variable instead:
306
+
307
+ >>> $ ZSTD_BUNDLED=1 python -m build -w
308
+
309
+ If you want to check if build w/o any warnings just add ``--
310
+ all-warnings`` option
311
+
312
+ >>> $ python setup.py build_ext --all-warnings clean
313
+
314
+ When using a PEP 517 builder you can use ``ZSTD_WARNINGS`` environment variable instead:
315
+
316
+ >>> $ ZSTD_WARNINGS=1 python -m build -w
317
+
318
+ Install from pypi
319
+ -----------------
320
+
321
+ >>> # for Python 2.7+
322
+ >>> $ pip install zstd
323
+ >>> # or for Python 3.4+
324
+ >>> $ pip3 install zstd
325
+
326
+
327
+ API
328
+ ___
329
+
330
+ Error
331
+ Standard python Exception for zstd module
332
+
333
+ ZSTD_compress (data[, level, threads, strict]): string|bytes
334
+ Function, compress input data block via mutliple threads, return compressed block, or raises Error.
335
+
336
+ Params:
337
+
338
+ * **data**: string|bytes - input data block, length limited by 2Gb by Python API
339
+ * **level**: int - compression level, ultra-fast levels from -100 (ultra) to -1 (fast) available since zstd-1.3.4, and from 1 (fast) to 22 (slowest), 0 or unset - means default (3). Default - 3.
340
+ * **threads**: int - how many threads to use, from 0 to 200, 0 or unset - auto-tune by cpu cores count. Default - 0. Since: 1.4.4.1
341
+ * **strict**: int - strict behaviour, raise `zstd.Error` if threads number or compression level is beyond limitations. Default - 0. Since: 1.5.6.3
342
+
343
+ Aliases:
344
+ - *compress(...)*,
345
+ - *dumps(...)*,
346
+ - *encode(...)* since: 1.5.6.2
347
+
348
+ Exception if:
349
+ - level bigger than max level
350
+
351
+ Max number of threads:
352
+ - 32bit system: 64
353
+ - 64bit system: 256
354
+ If provided bigger number - silently set maximber (since 1.5.4.1)
355
+
356
+ Since: 0.1
357
+
358
+ ZSTD_uncompress (data): string|bytes
359
+ Function, decompress input compressed data block, return decompressed block, or raises Error.
360
+
361
+ Support compressed data with multiple/concatenated frames (blocks) (since 1.5.5.1).
362
+
363
+ Params:
364
+
365
+ * **data**: string|bytes - input compressed data block, length limited by 2Gb by Python API
366
+
367
+ Aliases:
368
+ - *decompress(...)*,
369
+ - *uncompress(...)*,
370
+ - *loads(...)*,
371
+ - *decode(...)* since: 1.5.6.2
372
+
373
+ Since: 0.1
374
+
375
+ ZSTD_check (data): int
376
+ Function, checks if input is zstd compressed data block, returns 1 if yes, 0 if no.
377
+
378
+ Support compressed data with multiple/concatenated frames (blocks) .
379
+
380
+ Params:
381
+
382
+ * **data**: string|bytes - input compressed data block, length limited by 2Gb by Python API
383
+
384
+ Aliases:
385
+ - *check(...)*,
386
+ - *verify(...)* since: 1.5.6.3
387
+
388
+ Since: 1.5.6.2
389
+
390
+ version (): string|bytes
391
+ Returns this module doted version string.
392
+
393
+ The first three digits are folow libzstd version.
394
+ Fourth digit - module revision number for that version.
395
+
396
+ Since: 1.3.4.3
397
+
398
+ ZSTD_version (): string|bytes
399
+ Returns ZSTD library doted version string.
400
+
401
+ Since: 1.3.4.3
402
+
403
+ ZSTD_version_number (): int
404
+ Returns ZSTD library version in format: MAJOR*100*100 + MINOR*100 + RELEASE.
405
+
406
+ Since: 1.3.4.3
407
+
408
+ ZSTD_threads_count (): int
409
+ Returns ZSTD determined CPU cores count.
410
+
411
+ Since: 1.5.4.1
412
+
413
+ ZSTD_max_threads_count (): int
414
+ Returns ZSTD library determined maximum working threads count.
415
+
416
+ Since: 1.5.4.1
417
+
418
+ ZSTD_max_compression_level (): int
419
+ Returns ZSTD library determined maximum number of compression level .
420
+
421
+ Since: 1.5.6.3
422
+
423
+ ZSTD_min_compression_level (): int
424
+ Returns ZSTD library determined minimum number of compression level .
425
+
426
+ Since: 1.5.6.3
427
+
428
+ ZSTD_external (): int
429
+ Returns 0 of 1 if ZSTD library linked as external.
430
+
431
+ Since: 1.5.0.2
432
+
433
+ ZSTD_legacy_support (): int
434
+ Returns 0 of 1 if ZSTD library built with legacy formats support.
435
+
436
+ Since: 1.5.6.3
437
+
438
+ ZSTD_with_threads (): int
439
+ Returns 0 of 1 if bundled ZSTD library build with threads support.
440
+
441
+ Since: 1.5.6.2
442
+
443
+ ZSTD_with_asm (): int
444
+ Returns 0 of 1 if bundled ZSTD library build with asm optimization s.
445
+
446
+ Since: 1.5.6.2
447
+
448
+
449
+ Removed
450
+ _______
451
+
452
+ ZSTD_compress_old (data[, level]): string|bytes
453
+ Function, compress input data block, return compressed block, or raises Error.
454
+
455
+ **DEPRECATED**: Returns not compatible with ZSTD block header
456
+
457
+ **REMOVED**: since 1.5.0
458
+
459
+ Params:
460
+
461
+ * **data**: string|bytes - input data block, length limited by 2Gb by Python API
462
+ * **level**: int - compression level, ultra-fast levels from -5 (ultra) to -1 (fast) available since zstd-1.3.4, and from 1 (fast) to 22 (slowest), 0 or unset - means default (3). Default - 3.
463
+
464
+ Since: 1.0.0.99.1
465
+
466
+ ZSTD_uncompress_old (data): string|bytes
467
+ Function, decompress input compressed data block, return decompressed block, or raises Error.
468
+
469
+ **DEPRECATED**: Accepts data with not compatible with ZSTD block header
470
+
471
+ **REMOVED**: since 1.5.0
472
+
473
+ Params:
474
+
475
+ * **data**: string|bytes - input compressed data block, length limited by 2Gb by Python API
476
+
477
+ Since: 1.0.0.99.1
478
+
479
+ Use
480
+ ___
481
+
482
+ Module has simple API:
483
+
484
+ >>> import zstd
485
+ >>> dir(zstd)
486
+ ['Error', 'ZSTD_compress', 'ZSTD_external', 'ZSTD_uncompress', 'ZSTD_version', 'ZSTD_version_number', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'compress', 'decompress', 'dumps', 'loads', 'uncompress', 'version']
487
+ >>> zstd.version()
488
+ '1.5.1.0'
489
+ >>> zstd.ZSTD_version()
490
+ '1.5.1'
491
+ >>> zstd.ZSTD_version_number()
492
+ 10501
493
+ >>> zstd.ZSTD_external()
494
+ 0
495
+
496
+ In python2
497
+
498
+ >>> data = "123456qwert"
499
+
500
+ In python3 use bytes
501
+
502
+ >>> data = b"123456qwert"
503
+
504
+
505
+ >>> cdata = zstd.compress(data, 1)
506
+ >>> data == zstd.decompress(cdata)
507
+ True
508
+ >>> cdata_mt = zstd.compress(data, 1, 4)
509
+ >>> cdata == cdata_mt
510
+ True
511
+ >>> data == zstd.decompress(cdata_mt)
512
+ True