Use zstandard implementation from stdlib (PEP-784) #3725
+24
−16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Context
Thanks to PEP-784, Zstandard is included in Python starting from version 3.14 with the
compression.zstdmodule.So for Python 3.14+, we don't need an external lib. For older version of Python, I'm using
backports.zstdwhich exposes the same API as stdlib.This also means that users of Python 3.14+ will benefit from Zstandard support even if they install
httpxinstead ofhttpx[zstd].A similar change has been adopted in various other libraries already, such as
urllib3from version 2.6.0.Full disclosure: I'm the author and maintainer of
backports.zstd, and the maintainer ofpyzstd(which code was used as a base for the integration into Python). I also helped with PEP-784 and its integration into CPython.Checklist