⚠️ Security Notice
- The bundled brotoli version was updated to 1.2.1, to mitigate the http2shell issue.
certifiversion was updated to latest to remove the compromised eMudhra cert.- By default,
curl-cffiuses the system's CA store. However, before 0.17, the Windows revoke list was not read. Please upgrade your system and upgradecurl-cffito 0.17.
Highlights
- Added 9 new fingerprints.
- Refactored websockets for performance.
- Added python 3.15 support with the abi3t tag.
- Added more platform build configs.
What's Changed
- WS: Fix tests and rework assertions by @Sh3llcod3 in #851
- WS: Sync WebSocket Overhaul by @Sh3llcod3 in #788
- fix(cookies): preserve quotes in server-set cookie values by @codechrl in #827
- fix(requests): fall back to stdlib json in Response.json() when kwargs are passed (#639) by @apoorvdarshan in #796
- feat: add dns option to Session and AsyncSession by @XEDAB in #823
- fix(curl): compare bytes with bytes, not strings by @vmphase in #820
- Add support for path in .json() by @lexiforest in #859
- fix(fingerprints): correct client/platform literal type definitions by @vmphase in #821
- fix: fall back to curl_easy_strerror when the error buffer is empty by @HardMax71 in #865
- fix(curl): raise CurlError when curl_mime_data fails by @codechrl in #866
- fix(curl): don't keep CurlError in a reference cycle by @MaestroOfAutomation in #869
- WS: Fix proxies and verify options. Small docs update. by @Sh3llcod3 in #863
- test: clear XDG_CONFIG_HOME env var by @yurivict in #872
- feat: support httpx>=0.28 by @yurivict in #871
- feat: add CurlShare to share DNS/TLS caches across session threads by @dokson in #775
- Add freebsd building config by @lexiforest in #776
- chore(build): drop wheel FutureWarning, harden source downloads by @dokson in #777
- ci: build each Linux arch in its own parallel job by @dokson in #778
- fix(tests): silence websockets deprecation warnings by @dokson in #783
- fix(charset): handle quoted, spaced, and case-insensitive charset values by @vmphase in #794
- Add OpenBSD building config by @c2qd in #873
- fix: tolerate closed curl handles in AsyncCurl cleanup by @dokson in #807
- feat: add Session.cache_backend property by @dokson in #811
- fix: enable ALPN by default in Fingerprint by @dokson in #819
- fix(models): add type annotations to Response.json() by @vmphase in #822
- requests: make trust_env=False ignore proxy environment variables by @alkaz-nodemaven in #867
- fix(tests): reset timeout before the second request by @dokson in #876
- ci: bump actions off the deprecated Node 20 runtime by @dokson in #880
- feat: add CurlProxyType for HTTP/3 proxies by @dokson in #874
- Add support for python 3.15 and the abi3t tag by @lexiforest in #887
- fix(tests): clean the environment once per session by @dokson in #890
- Fix streaming race condition in response getinfo by @lexiforest in #860
- Added Android cross-ABI support by @hussain-najeb in #877
- Add support for permessage-deflate by @lexiforest in #891
- Explicit -z option when extracting gzip-compressed tarballs by @c2qd in #893
- Add FreeBSD riscv64 configuration to libs.json by @vivodi in #894
New Contributors
- @codechrl made their first contribution in #827
- @apoorvdarshan made their first contribution in #796
- @XEDAB made their first contribution in #823
- @HardMax71 made their first contribution in #865
- @MaestroOfAutomation made their first contribution in #869
- @yurivict made their first contribution in #872
- @c2qd made their first contribution in #873
- @alkaz-nodemaven made their first contribution in #867
- @hussain-najeb made their first contribution in #877
- @vivodi made their first contribution in #894
Full Changelog: v0.16.3...v0.17.0