File: CHANGELOG.md

package info (click to toggle)
python-pyzstd 0.19.1-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 496 kB
  • sloc: python: 5,754; makefile: 4
file content (154 lines) | stat: -rw-r--r-- 7,776 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# Changelog

All notable changes to this project will be documented in this file.

## 0.19.1 (November 13, 2025)

- Fix `SeekableZstdFile` write table entries on 32-bits architectures when there is a huge number of entries

## 0.19.0 (November 7, 2025)

- The project has been completely refactored to use the Zstandard implementation from the standard library ([PEP-784](https://peps.python.org/pep-0784/))
- The refactor has some minor impact on public APIs, such as changing the exception raised on invalid input
- Add `backports.zstd` dependency for Python before 3.14
- Changes in build dependency: remove `setuptools` and C build toolchain, add `hatchling` and `hatch-vcs`
- Remove git submodule usage
- Drop support for Python 3.9 and below
- Use `ruff` as formatter and linter
- Embed type hints in Python code, and check with `mypy`

## 0.18.0 (October 5, 2025)

- Support for Python 3.14
- Deprecate the `read_size` and `write_size` parameters of `ZstdFile` and `SeekableZstdFile`
- Deprecate `richmem_compress` and `RichMemZstdCompressor`
- Rework documentation to suggest using `compression.zstd` from Python stdlib, and provide a migration guide
- Include the `zstd` library license in package distributions

## 0.17.0 (May 10, 2025)

- Upgrade zstd source code from v1.5.6 to [v1.5.7](https://github.com/facebook/zstd/releases/tag/v1.5.7)
- Raise an exception when attempting to decompress empty data
- Add `ZstdFile.name` property
- Deprecate `(de)compress_stream` functions
- Use a leading `_` for private objects
- Build wheels for Windows ARM64
- Support for PyPy 3.11

## 0.16.2 (October 10, 2024)

- Build wheels for Python 3.13
- Deprecate support for Python version before 3.9 and stop building wheels for them

## 0.16.1 (August 4, 2024)

- Compatibility with Python 3.13

## 0.16.0 (May 20, 2024)

- Upgrade zstd source code from v1.5.5 to [v1.5.6](https://github.com/facebook/zstd/releases/tag/v1.5.6)
- Fix pyzstd_pep517 parameter name in `get_requires_for_build_wheel`
- Deprecate support for Python version before 3.8 and stop building wheels for them
- Minor fixes in type hints
- Refactor README & CHANGELOG files

## 0.15.10 (Mar 24, 2024)

- Fix `SeekableZstdFile` class can't open new file in appending mode.
- Support sub-interpreter on CPython 3.12+, can utilize [per-interpreter GIL](https://docs.python.org/3.12/whatsnew/3.12.html#pep-684-a-per-interpreter-gil).
- On CPython(3.5~3.12)+Linux, use another output buffer code that can utilize the `mremap` mechanism.
- Change repository URL and maintainer following the deletion of the GitHub account of the original author, Ma Lin (animalize). See [#1](https://github.com/Rogdham/pyzstd/issues/1).

## 0.15.9 (Jun 24, 2023)

ZstdFile class related changes:

- Add [`SeekableZstdFile`](https://pyzstd.readthedocs.io/#SeekableZstdFile) class, it's a subclass of `ZstdFile`, supports [Zstandard Seekable Format](https://github.com/facebook/zstd/blob/dev/contrib/seekable_format/zstd_seekable_compression_format.md).
- Add _mode_ argument to `ZstdFile.flush()` method, now it can flush a zstd frame.
- Add _read_size_ and _write_size_ arguments to `ZstdFile.__init__()` method, can work with Network File Systems better.
- Optimize `ZstdFile` performance to C language level.

## 0.15.7 (Apr 21, 2023)

ZstdDict class changes:

- Fix these advanced compression parameters may be ignored when loading a dictionary: `windowLog`, `hashLog`, `chainLog`, `searchLog`, `minMatch`, `targetLength`, `strategy`, `enableLongDistanceMatching`, `ldmHashLog`, `ldmMinMatch`, `ldmBucketSizeLog`, `ldmHashRateLog`, and some non-public parameters.
- When compressing, load undigested dictionary instead of digested dictionary by default. Loading again an undigested is slower, see [differences](https://pyzstd.readthedocs.io/#ZstdDict.as_digested_dict).
- Add [`.as_prefix`](https://pyzstd.readthedocs.io/#ZstdDict.as_prefix) attribute. Can use zstd as a [patching engine](https://pyzstd.readthedocs.io/#patching-engine).

## 0.15.6 (Apr 5, 2023)

- Upgrade zstd source code from v1.5.4 to [v1.5.5](https://github.com/facebook/zstd/releases/tag/v1.5.5).

## 0.15.4 (Feb 24, 2023)

- Upgrade zstd source code from v1.5.2 to [v1.5.4](https://github.com/facebook/zstd/releases/tag/v1.5.4). v1.5.3 is a non-public release.
- Support `pyproject.toml` build mechanism (PEP-517). Note that specifying build options in old way may be invalid, see [build commands](https://pyzstd.readthedocs.io/#build-pyzstd).
- Support "multi-phase initialization" (PEP-489) on CPython 3.11+, can work with CPython sub-interpreters in the future. Currently this build option is disabled by default.
- Add a command line interface (CLI).

## 0.15.3 (Aug 3, 2022)

- Fix `ZstdError` object can't be pickled.

## 0.15.2 (Jan 22, 2022)

- Upgrade zstd source code from v1.5.1 to [v1.5.2](https://github.com/facebook/zstd/releases/tag/v1.5.2).

## 0.15.1 (Dec 25, 2021)

- Upgrade zstd source code from v1.5.0 to [v1.5.1](https://github.com/facebook/zstd/releases/tag/v1.5.1).
- Fix `ZstdFile.write()` / `train_dict()` / `finalize_dict()` may use wrong length for some buffer protocol objects.
- Two behavior changes:
  - Setting `CParameter.nbWorkers` to `1` now means "1-thread multi-threaded mode", rather than "single-threaded mode".
  - If the underlying zstd library doesn't support multi-threaded compression, no longer automatically fallback to "single-threaded mode", now raise a `ZstdError` exception.
- Add a module level variable [`zstd_support_multithread`](https://pyzstd.readthedocs.io/#zstd_support_multithread).
- Add a setup.py option `--avx2`, see [build options](https://pyzstd.readthedocs.io/#build-pyzstd).

## 0.15.0 (May 18, 2021)

- Upgrade zstd source code from v1.4.9 to [v1.5.0](https://github.com/facebook/zstd/releases/tag/v1.5.0).
- Some improvements, no API changes.

## 0.14.4 (Mar 24, 2021)

- Add a CFFI implementation that can work with PyPy.
- Allow dynamically link to zstd library.

## 0.14.3 (Mar 4, 2021)

- Upgrade zstd source code from v1.4.8 to [v1.4.9](https://github.com/facebook/zstd/releases/tag/v1.4.9).

## 0.14.2 (Feb 24, 2021)

- Add two convenient functions: [`compress_stream()`](https://pyzstd.readthedocs.io/#compress_stream) and [`decompress_stream()`](https://pyzstd.readthedocs.io/#decompress_stream).
- Some improvements.

## 0.14.1 (Dec 19, 2020)

- Upgrade zstd source code from v1.4.5 to [v1.4.8](https://github.com/facebook/zstd/releases/tag/v1.4.8).
  - v1.4.6 is a non-public release for Linux kernel.
  - v1.4.8 is a hotfix for [v1.4.7](https://github.com/facebook/zstd/releases/tag/v1.4.7).
- Some improvements, no API changes.

## 0.13.0 (Nov 7, 2020)

- `ZstdDecompressor` class: now it has the same API and behavior as BZ2Decompressor / LZMADecompressor classes in Python standard library, it stops after a frame is decompressed.
- Add an `EndlessZstdDecompressor` class, it accepts multiple concatenated frames. It is renamed from previous `ZstdDecompressor` class, but `.at_frame_edge` is `True` when both the input and output streams are at a frame edge.
- Rename `zstd_open()` function to `open()`, consistent with Python standard library.
- `decompress()` function:
  - ~9% faster when: there is one frame, and the decompressed size was recorded in frame header.
  - raises ZstdError when input **or** output data is not at a frame edge. Previously, it only raise for output data is not at a frame edge.

## 0.12.5 (Oct 12, 2020)

- No longer use [Argument Clinic](https://docs.python.org/3/howto/clinic.html), now supports Python 3.5+, previously 3.7+.

## 0.12.4 (Oct 7, 2020)

- It seems the API is stable.

## 0.2.4 (Sep 2, 2020)

- The first version upload to PyPI.
- Includes zstd [v1.4.5](https://github.com/facebook/zstd/releases/tag/v1.4.5) source code.