Skip to content

Latest commit

 

History

History
1488 lines (849 loc) · 104 KB

RELEASE.md

File metadata and controls

1488 lines (849 loc) · 104 KB

[unreleased]

Compatibility Notes

  • Unknown keyword arguments now raise TypeError when calling async or blocking client constructors, HTTP or WebSocket request methods and functions, Http1Options, Http2Options, TlsOptions, or Proxy factories. These arguments were previously ignored.
  • Set client-only options such as connect_timeout and proxies on Client; passing them to a request now raises TypeError. Use proxy to select a proxy for one request.
  • Async request calls check keyword names before returning a coroutine. Values for supported request keywords are still converted on first await or entry with async with.

0.11.0 - 2026-04-13

Features

  • (http1/http2) Implement __str__ for types (#559) - (e85ac65)

Refactor

  • (tls) Standardize TLS config fields with tls_ prefix (#556) - (5504542)

Documentation

  • (python) Prefer Mapping over Dict for abstract type hints - (d7ab30e)

Miscellaneous Tasks

  • Change license from GPLv3 to Apache-2.0 - (7e4851a)

Bench

  • (python) Use pyperf strict mode over custom logic (#561) - (2eca676)

Build

  • (ci) Fix free-threaded wheel builds on Windows via maturin (#560) - (5d39a3a)
  • (deps) Bump wreq version to latest (#562) - (c33b4b4)
  • (deps) Update http dependency version to 1.4.0 (#553) - (af16c66)
  • (deps) Update tokio dependency version to 1.51.0 (#552) - (2ee6fda)
  • (deps) Update arc-swap dependency to version 1.9.0 (#551) - (e479f49)
  • (deps) Update pyo3 dependency version to 0.28.3 (#550) - (94e1d30)
  • (deps) Update bench optional dependencies - (1685d14)

New Contributors ❤️

  • @tjaycodes4you made their first contribution in #557

0.10.2 - 2026-03-27

Features

  • (client) Implement graceful shutdown for Client (#543) - (e844ff3)

Bug Fixes

  • (response) Ensure response remains cached when valid (#544) - (5f7e3ba)

Miscellaneous Tasks

  • (buffer) Add skip_from_py_object to BufferView pyclass - (8cae362)
  • (client) Replace cancel with close in async exit handling - (5b09884)

0.10.1 - 2026-03-27

Documentation

  • (ws) Update response attributes documentation - (3858d42)
  • (ws) Expose local_addr in response docs (#542) - (6f92e6c)
  • Migrate to Zensical for documentation (#540) - (b41a913)
  • Update documentation URL in pyproject.toml - (5dc16c6)

Build

  • (deps) Streamline dependency management (#541) - (382c154)

0.10.0 - 2026-03-26

Features

  • (client) Implement context manager protocol (#533) - (3f76605)
  • (response) Clear cached data when response is dropped (#535) - (c65346e)

Documentation

  • (python) Change return type of __enter__ method to Any (#534) - (7d592f9)

Miscellaneous Tasks

  • Update commit parsers in cliff.toml - (e60d510)

Build

  • (deps) Bump actions/attest-build-provenance from 3 to 4 (#529) - (b32777b)
  • (deps) Bump actions/download-artifact from 7 to 8 (#528) - (4b0ea46)
  • (deps) Bump actions/upload-artifact from 6 to 7 (#527) - (23366c7)

3.0.0-rc22 - 2026-02-24

Refactor

  • (response) Merge text and text_with_charset into a single method (#524) - (542a610)

3.0.0-rc21 - 2026-02-18

Features

  • (emulation) Update emulation device enums from wreq-util rc.10 (#516) - (eb25f00)
  • Add sync shortcut request method (#514) - (274959a)

Refactor

  • (request) Simplify multipart body extraction (#510) - (8ccacb2)
  • (ws) Simplify Message creation (#517) - (c35c289)

Documentation

  • (response) Clarify close() method behavior and recommend context managers (#507) - (daa2871)
  • (stream) Improve comments on GIL acquisition - (8a2a127)
  • Fix api docs (#509) - (49a5861)
  • Update documentation site - (3d0b0c2)
  • Add documentation site (#498) - (c0d0f18)

Performance

  • (rt) Use native async for context management (#511) - (30c0136)
  • (stream) Refactor Streamer for compatibility with frozen async state (#513) - (83a0782)

Miscellaneous Tasks

Build

  • (deps) Update arc-swap dependency to version 1.8.0 - (302cd9b)
  • (deps) Update indexmap dependency to version 2.13.0 (#503) - (95a460f)
  • (deps) Bump actions/setup-python from 5 to 6 (#500) - (b46bee4)
  • (deps) Bump actions/checkout from 4 to 6 (#499) - (40b2335)

New Contributors ❤️

  • @steppaovo made their first contribution in #516

3.0.0-rc20 - 2026-01-17

Features

  • (client) Expose client cookie jar access (#477) - (034d0e3)
  • (cookie) Remove deprecated cookie add APIs (#492) - (76788ac)
  • (cookie) Consolidate cookie methods into a unified add() (#479) - (5c44f4f)
  • (http) Implement rich comparison for StatusCode with integers (#490) - (65af91e)
  • (request) Allow setting compressed and uncompressed cookies (#491) - (b268564)
  • (runtime) Add async task cancellation support (#495) - (23dc0c4)

Refactor

  • (response) Refactor TlsInfo extension wrapper (#481) - (8195fb6)

Documentation

  • (client) Update client configuration parameters (#482) - (4c01ab1)
  • (cookie) Fix compression parameter type in cookie constructor (#480) - (8bcf8fc)
  • (python) Clean up KeyLog class documentation - (8460b0a)
  • (tls) Fix duplicate field in TlsOptions class - (34cbac8)

Performance

  • (config) Avoid unnecessary configurations (#488) - (c7e9dda)
  • (identity) Optimize mTLS identity creation performance (#485) - (6b9e00e)
  • (response) Reduce response initialization overhead (#494) - (790d958)

Testing

  • (cookie) Improve cookie update tests (#487) - (f682724)

Miscellaneous Tasks

  • (cookie) Simplify getter methods by removing inline attributes (#484) - (23dc825)
  • Add .csv and .py files to .gitignore - (ec3a534)

Build

  • (deps) Bump wreq version to 6.0.0-rc.27 (#496) - (23e3c28)
  • Fix compiled wheels being unusable (#497) - (c80a6a3)
  • Mutually exclusive jemalloc/mimalloc allocator features (#478) - (b5d7c42)

Deps

  • Update tokio dependency version to 1.49.0 - (19539e8)

New Contributors ❤️

  • @serozhenka made their first contribution in #477

3.0.0-rc17 - 2025-12-31

Features

  • (emulation) Update emulation device enums (#475) - (6ddf10d)

Build

  • (deps) Bump wreq version to 6.0.0-rc.26 (#474) - (d784227)

3.0.0-rc16 - 2025-12-22

Features

  • (client) Enforce proper usage of custom cookie provider (#463) - (31dfc88)
  • (error) Add ProxyConnectionError for proxy connection errors (#464) - (5bd789f)
  • (response) Introduce trailers support (#467) - (9ccdefd)

Documentation

  • (python) Add ProxyConnectionError to exceptions list - (75eb571)
  • (stream) Introduce Frame enum with PyBuffer variant - (04ff163)

3.0.0-rc15 - 2025-12-16

Features

  • (client/request) Add dual-stack local IP address binding (#436) - (8f27578)
  • (cookie) Add optional cookie jar compression strategy (#448) - (ea1d187)
  • (exception) Remove unused URLParseError exception types (#447) - (cef2ac8)
  • (proxy) Implement str for Proxy class (#452) - (0e319a1)
  • (proxy) Move to proxy module and support unix sockets (#449) - (bd1dbff)
  • (redirect) Refactor redirect policy with callback support (#440) - (80db9c3)
  • (request) Allow per-request cookie provider (#450) - (8ef54c6)
  • (request) Auto-convert multiple types in query/form parameters (#434) - (a3ac24e)
  • (resp) Implement __str__ for response class (#439) - (95846f9)

Refactor

  • (client) Replace numeric duration values with datetime.timedelta (#454) - (a322e09)
  • (dns) Remove unused exception types (#437) - (c967fd4)
  • (rt) Migrate async runtime to pyo3-async-runtimes (#428) - (228069a)

Documentation

  • (python) Use T | None instead of Optional[T] for type hints (#460) - (c353a37)
  • (python) Update document prompt (#453) - (89a7dfa)

Performance

  • (client) Improve client create performance (#459) - (4089ea1)
  • (client) Improve request send performance (#455) - (4a0b891)
  • (stream) Prevent GIL blocking tokio workers (#444) - (26ef30a)

Miscellaneous Tasks

Build

  • (deps) Bump actions/upload-artifact from 5 to 6 (#457) - (758d509)
  • (deps) Bump actions/download-artifact from 6 to 7 (#458) - (fb5c425)

New Contributors ❤️

  • @xiaoweigege made their first contribution in #453

3.0.0-rc14 - 2025-12-02

Bug Fixes

  • (client) Handle multi-value default headers without overriding requests (#425) - (542a595)

Performance

  • (response) Fix async API blocking the runtime (#427) - (3288644)

Miscellaneous Tasks

  • (examples) Fmt code - (41405e2)
  • (response) Change methods to consume self instead of borrowing - (99f2924)

Build

  • (deps) Bump actions/checkout from 5 to 6 (#423) - (abc17a4)

3.0.0-rc13 - 2025-11-21

Documentation

  • (python) Replace List with Sequence for immutable returns (#417) - (a5f706f)

Miscellaneous Tasks

3.0.0-rc12 - 2025-11-07

Features

  • (client) Adapt overriding domain name resolution address (#386) - (d775f66)
  • (request) Support form/json type in body data (#400) - (783294a)
  • (request) Support dict type in query data (#399) - (3d84aeb)
  • (uri) Percent-encode spaces when building request URLs (#411) - (1d5698d)
  • Add Chrome 142 emulation support (#409) - (cd16681)

Bug Fixes

Documentation

  • (python) Replace Union with | operator in type hints (#413) - (6d0ec9f)

Performance

  • (ws) Optimize recv function with inline attribute - (a9981c9)

Miscellaneous Tasks

Build

  • (deps) Bump actions/upload-artifact from 4 to 5 (#403) - (8ffa96f)
  • (deps) Bump actions/download-artifact from 5 to 6 (#402) - (75cf8a6)

New Contributors ❤️

  • @orangehaired made their first contribution in #409

3.0.0-rc10 - 2025-10-21

Features

  • (emulation) Add chrome141 emulation (#396) - (6a4973a)
  • (request) Support dict type in form data (#391) - (a647d7a)

Refactor

  • (core) Reduce dependency on futures (#393) - (0596997)

Documentation

Performance

  • (json) Zero-copy string deserialization (#392) - (dabcf28)
  • (rt) Optimize async runtime scheduling - (9a24b14)
  • (rt) Optimize async runtime scheduling (#387) - (6332370)

Miscellaneous Tasks

  • (module) Use flat module structure - (9c85b7b)
  • Add wheels for release - (8c6cfb8)
  • Update examples - (d4a2d82)

Build

  • (deps) Bump astral-sh/setup-uv from 6 to 7 (#381) - (c363d08)
  • (deps) Bump actions/checkout from 4 to 5 (#380) - (daa2b16)
  • Add abi3-py313 dependency to Cargo.toml (#378) - (d992418)

3.0.0-rc9 - 2025-10-09

Miscellaneous Tasks

Build

  • (deps) Bump actions/checkout from 3 to 5 (#367) - (07a529a)
  • (deps) Bump actions/download-artifact from 4 to 5 (#368) - (4344798)
  • (deps) Bump actions/attest-build-provenance from 1 to 3 (#369) - (b973f2d)
  • (deps) Bump astral-sh/setup-uv from 5 to 6 (#370) - (981bc73)
  • (deps) Bump actions/setup-python from 5 to 6 (#371) - (ea02db2)

3.0.0-rc8 - 2025-10-03

Refactor

Performance

  • Cache hot PyString calls using pyo3::intern! macro (#365) - (305fab3)

3.0.0-rc7 - 2025-09-26

Features

  • (client) Add verify_hostname option binding (#351) - (4691fba)
  • (client) Add HTTP/TLS binding API (#350) - (9d7be01)
  • (emulation) Add safari ios/ipad 26 emulation (#361) - (cdc3ace)
  • (emulation) Add Chrome(138–140), Firefox(140,142), Safari26 (#358) - (773ccb4)

Documentation

  • (http2) Align Python enum member names with PascalCase convention (#354) - (b3041d1)
  • (python) Fix some LSP hints (#360) - (d4fa076)
  • (python) Rename SettingOrder to SettingsOrder (#356) - (f3d85c1)
  • (python) Improve documentation for HTTP/2 configuration enums (#353) - (975c168)
  • (python) Fix SettingId dcos - (048985c)

Miscellaneous Tasks

  • (http2) Re-export StreamId as public Class - (2dc67a5)

New Contributors ❤️

  • @LanceaKing made their first contribution in #356

3.0.0-rc6 - 2025-09-13

Features

  • (resp) Add raise_for_status() for error handling (#347) - (30ea389)
  • (resp) Allow reuse in free-threaded mode (#343) - (cd74a0b)

Bug Fixes

  • (rt) Prevent GIL from stalling background Rust future tasks (#346) - (2625bb3)

Documentation

  • (python) Update exceptions docs - (7c72c13)

3.0.0-rc5 - 2025-09-05

Features

  • (multipart) Allow setting headers and stream upload length (#329) - (4dcf56e)
  • (ws) Allow message batching to reduce buffer flushes (#331) - (dafcb74)

Documentation

  • (python) Fix response content_length API docs (#339) - (870c43e)
  • (python) Fmt code - (8995675)
  • (python) Fix multiple Python LSP API warnings (#337) - (8b793aa)
  • (python) Improve documentation for response parameters - (14e9773)
  • (python) Improve documentation for client and request parameters (#334) - (395bc60)
  • (python) Fix cookie initialization API docs (#333) - (0021d26)

Performance

  • (msg) Eliminate borrow checker overhead - (7bfd213)
  • (ws) Eliminate borrow checker overhead (#335) - (6abf748)

Styling

Miscellaneous Tasks

  • (python) Update examples - (e7e01a2)

Revert

  • (client) Remove http2_max_retry_count option (#336) - (740e5ad)

Build

  • (deps) Bump wreq version to 6.0.0-rc.14 (#340) - (eab9b53)

3.0.0-rc3 - 2025-09-03

Features

  • (response) Allow accessing redirect history in response (#322) - (ebb82ab)
  • (response) Reuse buffered response body (#318) - (e6f01b6)
  • (ws) WebSocket support for recv() timeout (#316) - (3901f84)

Refactor

  • (buffer) Restructure buffer protocol (#319) - (74c9ebe)
  • (header) Streamline HeaderMap iterators (#321) - (c930470)
  • (response) peer_certificate as read-only property (#327) - (df6de03)
  • (response) Remove encoding readonly property (#324) - (0a4a05d)
  • (ws) Drop iterator impl (#317) - (529a83d)

Documentation

Performance

  • (pyclass) Eliminate borrow checker overhead (#323) - (c4e378d)
  • (stream) Channel-based iteration, drop locks (#320) - (5c59e9d)

Styling

Miscellaneous Tasks

Build

  • (deps) Bump wreq version to 6.0.0-rc.11 - (00626f0)

3.0.0-rc2 - 2025-08-28

Features

  • (response) Return local address used for the request (#313) - (1100d4e)

Refactor

  • (request) Remove string proxy support (#310) - (6dd1d4d)

Documentation

  • (python) Simplify documentation parameter types (#311) - (38c0b19)

Miscellaneous Tasks

  • (client) Remove unimplemented no_keepalive option (#312) - (5bff272)

Revert

  • perf(async): release Python GIL during async operations - (a231ed2)

3.0.0-rc1 - 2025-08-23

Features

  • (client) Support TCP socket SO_REUSEADDR option (#278) - (b2a93cb)
  • (cookie) Retrieve all cookies from the cookie jar (#276) - (1d96f8b)
  • (exception) Add TLS and WebSocket exception types and handling (#280) - (c285150)
  • (header) Preserve HTTP/1 case and header order (#303) - (eb95e66)
  • (request) Optional per-request decompression setting (#277) - (02719c5)
  • (tls) Add TLS keylog support via KeyLogPolicy (#296) - (994b737)
  • (tls) Expose flexible cert store binding (#294) - (d720929)
  • (tls) Support private key and X509 cert as client certificate (#293) - (8e433e5)

Refactor

  • (blocking) Move blocking API to python.blocking and unify type names (#288) - (75e3825)
  • (response) Simplify status code API (#279) - (32c034b)
  • (typing) Simplify Python class __str__ magic method impls (#284) - (0367423)

Documentation

  • (python) Fix cookie store API docs - (010f080)
  • (python) Update tls module documention - (69dc23e)
  • (python) Rename .pyi stubs to .py for wider type checker support (#295) - (a93ccbd)
  • (python) Update tcp socket documentation (#289) - (ed48b67)
  • (python) Update cookie documentation - (8cc448e)
  • (python) Update pyi documentation (#281) - (dc697b1)

Performance

  • (async) Release Python GIL during async operations (#291) - (73e6fbd)
  • (client) Inline hot-path request methods for reduced call overhead (#290) - (84bc510)
  • (header) Zero-copy creation of header values (#302) - (bb1e213)

Testing

  • (request) Add test for disabling default headers - (298c214)

Miscellaneous Tasks

  • (tls) Remove duplicate TLS version bindings (#298) - (a1e8f23)

Build

  • (deps) Compile optional memory allocator (#285) - (b27c9f4)
  • (deps) Wheel drops support for versions prior to 3.11 (#271) - (f091144)

2.4.2 - 2025-08-02

Bug Fixes

  • (redirect) Fix request-level redirect (#268) - (29554cf)

Refactor

  • (module) Separate typing responsibilities - (ce2bf13)

2.4.1 - 2025-07-31

Features

  • (client) Set default values for TCP keepalive and user_timeout (#265) - (b7b510c)

Refactor

  • (module) Separate stream responsibilities - (a55c974)
  • (module) Separate param responsibilities - (48c94a3)
  • (module) Separate client responsibilities - (cec0b46)

Styling

Build

  • (deps) Bump tokio version to 1.47.0 - (52681d7)

2.4.0 - 2025-07-24

Features

  • (cookie) Adopt browser-style uncompressed cookie format (#260) - (152d280)
  • Add safari 18_5 impersonate (#257) - (206843d)

2.3.9 - 2025-07-04

Features

  • (header) Allow default fallback in Response.headers.get() (#254) - (ae74b9d)

Documentation

  • (response) Fix return type of Response.json() method (#253) - (817584b)

New Contributors ❤️

  • @owocado made their first contribution in #253

2.3.8 - 2025-07-01

Documentation

Performance

  • Release GIL during submodule initialization (#246) - (3b8f594)

Benchmark

  • Fix thread count - (43dc863)
  • Fix latest version of aiohttp benchmark - (9f7da96)

2.3.7 - 2025-06-28

Bug Fixes

2.3.6 - 2025-06-27

Features

  • (header) Provide comprehensive HeaderMap API bindings (#239) - (118b6a2)

Bug Fixes

  • (header) Fix HeaderMap append API behavior (#240) - (c59a21c)

Miscellaneous Tasks

Bench

2.3.3 - 2025-06-23

Features

  • (enums) Add Chrome137 and Firefox139 impersonate (#230) - (179132a)

Documentation

  • (proxy) Document proxy parameter accepting HeaderMap (#232) - (a90790f)
  • Fix proxy class typing - (2cfb92f)
  • Fix proxy class typing (#234) - (9c9a00b)

Bench

  • Introduce initial benchmark to evaluate HTTP client throughput and latency (#229) - (2f596c6)

2.3.1 - 2025-06-19

Features

  • Add Opera 116/117/118/119 impersonate (#228) - (3373bef)

2.3.0 - 2025-06-18

Documentation

Revert

  • Remove Unpack[TypedDict] from class init method (#217) - (92f92a4)

Build

  • (jemallocator) Exclude dependency on Linux GNU targets (#224) - (e2cc03a)

2.2.12 - 2025-06-10

Features

  • (impersonate) Implement random built-in ImpersonateOption (#214) - (083ffcc)

Documentation

2.2.11 - 2025-05-30

Features

  • Python bindings now support subclass inheritance for classes (#209) - (d6260c8)

Miscellaneous Tasks

2.2.10 - 2025-05-24

Refactor

  • (async_impl) Use async style for Response.close() to match async conventions (#206) - (a2bb67e)

Documentation

  • (ws) Update WebSocket message property type (#207) - (f88f76b)

Styling

Miscellaneous Tasks

Build

  • (deps) Update pyo3 requirement from 0.24.2 to 0.25.0 (#200) - (11ece4c)

2.2.9 - 2025-05-11

Features

  • (header) HeaderMap distinguishes between append and overwrite APIs (#197) - (928ced0)

Bug Fixes

2.2.8 - 2025-04-29

Features

  • (client) Http1 headers uppercase conversion by default - (f0462d4)
  • (client) Http1 headers uppercase conversion by default (#192) - (338b003)
  • (error) Fix and export exceptions (#190) - (152313f)

Documentation

  • Update SocketAddr __repr__ API docs (#188) - (00124b3)

Miscellaneous Tasks

2.2.6 - 2025-04-27

Documentation

  • Fix Jetbrains family bucket tooltips (#187) - (e57a2df)
  • Manually maintain Python API documentation (#186) - (10c1659)

Miscellaneous Tasks

2.2.5 - 2025-04-27

Features

  • (client) Partially update and append client headers (#184) - (01b051d)
  • (client) Update client headers partially rather than overwriting them (#182) - (1e54936)
  • (typing) Add chrome/110 impersonate (#185) - (20748de)

Documentation

  • (ipaddr) Update ipaddr docs - (11e37fd)
  • Clean up redundant doc comments - (9846a96)

Miscellaneous Tasks

  • (examples) Update examples - (67b0ac6)
  • Use ubuntu-latest - (f95cbc4)

Build

  • (deps) Update pyo3-stub-gen requirement from 0.7.0 to 0.8.0 (#183) - (31f7319)

2.2.1 - 2025-04-03

Features

  • (header) Adapt multiple value sequences of key mapping (#179) - (2f79c3d)
  • (proxy) Clone and reuse proxy objects (#178) - (864b56c)

2.2.0 - 2025-03-30

Features

  • (proxy) Enhanced websocket request level proxy definition (#175) - (6a7856e)

Refactor

Miscellaneous Tasks

  • (docs) Delete unused docs - (5454653)

2.1.5 - 2025-03-27

Features

  • (headers) Adapt HeaderMap to support repeated headers (#166) - (2138154)
  • (stream) Streaming transfers supports str chunks (#155) - (a913663)
  • Allow inheritance of Client and BlockingClient in python (#152) - (9582afc)

Bug Fixes

  • (client) Updating client can overwrite verify option (#163) - (1aa4164)
  • (proxy) Fix typo (#169) - (c87a163)
  • (typing) Fix SameSite enum binding mapping error (#172) - (fa91b34)

Documentation

  • (json) Improve Json type hints (#159) - (70836ae)
  • (status) Improve StatusCode __repr__ implement (#160) - (aef0167)
  • Format rnet.pyi - (65f5c12)
  • Generate docs conditionally to minimize binary size (#161) - (6efccc9)

Performance

  • (proxy) Release the GIL when creating proxy (#170) - (d7bcf0d)
  • (ws) Zero-copy creation of websocket messages (#164) - (56a10f3)
  • Optimizing type conversions - (b41b1e9)

Styling

Miscellaneous Tasks

  • (body) Remove redundant type conversions - (9f1c5e1)
  • (error) Refactor exception error handling (#154) - (f41b02d)

Build

New Contributors ❤️

  • @fnk93 made their first contribution in #152

2.0.5 - 2025-03-19

Features

  • (proxy) Enhanced request level proxy definition (#145) - (25c452f)
  • (typing) Add safari/18_3_1 impersonate (#146) - (b1e8f63)

Bug Fixes

  • (tests) Update self-signed.badssl.com certificate test (#143) - (27b3e38)

Performance

Styling

Miscellaneous Tasks

2.0.0 - 2025-03-18

Features

  • Add chrome 134 impersonate (#140) - (476d741)
  • Adopt requests style API for client SSL certificate verification (#132) - (bab3d72)

Bug Fixes

  • (header) Adapt to the scenario of duplicate keys in HeaderMap (#135) - (bf3b76c)
  • (ws/client) Adapt to the scenario of duplicate keys in HeaderMap - (3dd144a)

Refactor

  • (cookie) Refactor cookie API signature (#134) - (8f8808b)

Performance

  • (header) Use buffer protocol in HeaderMap to reduce copying (#136) - (da72d4e)

Styling

Miscellaneous Tasks

  • Update examples - (2b811f0)
  • Use macros to simplify Python buffer implementation (#139) - (3e68f2c)
  • Rename header type conversion - (1b394b3)
  • Rename some APIs - (425cab1)

Build

  • (deps) Remove unused dependencies (#131) - (a55c38f)
  • (deps) Update pyo3 requirement from 0.23.5 to 0.24.0 (#123) - (bc04abd)
  • (deps) Update pyo3-async-runtimes requirement (#130) - (b98f5b5)
  • Add free-threaded package support (#142) - (e13e292)

1.7.0 - 2025-03-12

Features

  • (ws) Added read_buffer_size optional config (#126) - (2d5d64a)
  • (ws) HTTP/2 support for WebSocket (#125) - (52c020c)

Performance

  • (ws) Prevent deep copy of message data (#127) - (245a65a)

Styling

Miscellaneous Tasks

Build

  • (deps) Update indexmap requirement from 2.7.0 to 2.8.0 (#128) - (ace2e5c)
  • (deps) Update rquest requirement from 2.2.1 to 3.0.5 (#124) - (35f3f7b)
  • Upgrade dependencies (#122) - (5807382)

New Contributors ❤️

  • @dependabot[bot] made their first contribution in #124

1.6.5 - 2025-03-06

Bug Fixes

  • (stream) Fix asynchronous stream sending (#119) - (db2ae24)

Performance

  • (body) Optimize data copying in request body sending (#120) - (5710295)
  • (cookie) Attempt to convert a Bytes buffer to a HeaderValue (#117) - (d652097)

1.6.1 - 2025-03-03

Performance

  • (async_impl) Allow #[inline(always)] cookies (#111) - (c63a47a)
  • (cookie) Zero-copy cookies extraction (#113) - (07c63a6)
  • (error) Allow #[inline(always)] errors (#112) - (65b09ca)
  • Zero-copy extraction of request parameters (#114) - (9a9eafc)

Styling

Miscellaneous Tasks

Build

1.6.0 - 2025-03-02

Features

  • Remove unsupported CONNECT request method (#108) - (18d5ff2)

Refactor

  • Rename APIs to better match their use casesca - (1551059)
  • Rename APIs to better match their use cases (#110) - (7e36d70)

Performance

  • (blocking) Allow #[inline(always)] cookies (#103) - (4bc7301)
  • (client) Improve performance of client cookie setting (#105) - (02e46e0)
  • Reduce cookie and header data copying (#109) - (d29772c)
  • Use zero-copy param for Python to Rust conversion (#107) - (d904936)
  • Use zero-copy strings for Python to Rust conversion (#106) - (ea26e88)
  • Use byte buffer for WebSocket message body (#104) - (6d1266c)

Styling

Miscellaneous Tasks

1.5.6 - 2025-03-01

Features

  • (http/ws) Handling stream read errors (#102) - (f9c4806)
  • Avoid returning unnecessary data after connection is closed (#100) - (118a785)

Performance

  • (stream) Fine-grained handling of GIL release for synchronized iterators - (5d86791)
  • (stream) Release the GIL while the Stream is waiting for the future (#101) - (ba7a3d7)

Styling

1.5.5 - 2025-02-28

Features

  • (client) Allow setting TLS version range (#95) - (09a1ab6)
  • (ws) Return error when sending/receiving after websocket disconnect (#99) - (d4cf2f0)

Refactor

  • Module types renamed to typing - (7deaba8)

Performance

  • (client) Remove duplicate type conversions (#98) - (8845e49)
  • (ws) Optimize websocket message processing (#96) - (57d882f)
  • Improved streaming body delivery (#97) - (aacedb6)

Miscellaneous Tasks

  • Refactor headers order parameter extract - (92a1fc9)
  • Simplify some type conversions (#94) - (723540c)

1.5.2 - 2025-02-28

Features

  • (types) Wrapped indexmap type document generation - (8aae65f)
  • (types) Wrapped indexmap type document generation (#91) - (56f3ef7)
  • Added request to set cookie dictionary (#92) - (03058fa)

Documentation

Styling

Testing

Miscellaneous Tasks

1.5.0 - 2025-02-27

Features

Documentation

  • Fix type documentation generation (#88) - (a5a7497)

Miscellaneous Tasks

1.3.1 - 2025-02-27

Features

  • (async_impl) Remove __anext__ redundant Option wrapper (#78) - (28e49aa)
  • (ws) Add response code attribute to WebSocket response (#82) - (9002c1d)
  • Adapt sync bytes stream body and upload (#84) - (fd8ee1a)
  • Adapt bytes stream body and upload (#80) - (59113b4)

Performance

  • Implementing the Python Buffer Protocol (#85) - (0e14d63)

Styling

Testing

Build

  • (deps) Remove unused dependencies (#79) - (789d1c8)

1.3.0 - 2025-02-26

Features

  • Implement context management for WebSocket Response (#77) - (ac90e2c)
  • Implement context management for HTTP Response (#76) - (5eb8ead)

Bug Fixes

  • Change &'a mut self to &self to avoid runtime errors (#75) - (c379fc6)

Refactor

Performance

  • (blocking) Stream iteration abandons the GIL lock (#72) - (226ba8f)

1.2.0 - 2025-02-25

Features

  • (client) Added optional DNS lookup ip strategy (#65) - (703ac81)
  • Blocking API and client support (#70) - (3181ef6)

Bug Fixes

  • (deps) Fix no_proxy on Windows (#67) - (9b58d81)

Refactor

  • Reorganized module exports - (6d5ffb5)
  • Reorganized module exports (#68) - (d01eba2)

Performance

  • (blocking) Send a request to relinquish the GIL (#71) - (830f615)

Styling

1.0.1 - 2025-02-24

Features

  • Prepares the use of Python in a free-threaded context (#63) - (122b1bf)

Build

  • (deps) Update rquest requirement from 2.1.6 to 2.2.0 (#62) - (baa8048)
  • Minimum required Python version is 3.7 (#64) - (f98e95c)

1.0.0 - 2025-02-23

Features

  • (ws) Ensure websocket connection is released when closed (#59) - (e347e92)
  • Added max redirects option parameter (#55) - (3286c56)

Documentation

Performance

  • (http) Release locks early during stream iteration (#57) - (703d07b)
  • (http) Optimize the overhead of boundary checks for streaming response types (#56) - (93485f2)

Testing

Miscellaneous Tasks

Build

  • (deps) Update rquest requirement from 2.1.5 to 2.1.6 (#60) - (9ea0e1c)
  • Fix windows using pyo3/generate-import-lib (#58) - (5136281)
  • Added support for Windows arm64 wheel package (#54) - (a73ca87)
  • Fix windows aarch64 using pyo3/generate-import-lib (#53) - (e76a116)

0.6.1 - 2025-02-22

Features

Bug Fixes

  • (types) Fix FFI enum type binding documentation generation (#50) - (3d70255)

0.6.0 - 2025-02-20

Features

  • (client) An asynchronous DNS resolver is used by default (#45) - (6c6f994)

Documentation

Miscellaneous Tasks

Build

  • Lower glibc version requirements (#44) - (e2b3107)

0.5.1 - 2025-02-19

Features

  • (proxy) Enhanced proxy settings binding (#42) - (bfc78a2)

Bug Fixes

  • (proxy) Update proxy creation instructions and fix all methods (#41) - (c1b9bca)

0.5.0 - 2025-02-18

Features

  • (client) Optionally enable asynchronous DNS resolver (#37) - (6ae8221)
  • (client) Added thread-safe update client (#36) - (9890224)
  • Asynchronous DNS is disabled by default in client (#39) - (230cb7f)
  • Added bridge from Rust to Python logging (#38) - (69e05bd)
  • Add private mode Firefox135 support (#34) - (517fe6e)
  • Add base_url for client (#33) - (401383e)

Documentation

  • Update rnet.pyi documents - (a069213)

Performance

  • (client) Reuse default client to improve quick request efficiency (#40) - (6b0c01d)

Testing

Miscellaneous Tasks

  • (error) Improving Rust's borrowed memory management errors (#35) - (800c103)
  • Update UpdateClientParams usage documents - (66e8e4d)

0.2.6 - 2025-02-17

Features

  • Initial support for websocket (#32) - (116307f)
  • Add jemallocator to improve memory allocation performance (#31) - (f74a198)

Refactor

  • Refactor websocket implement - (13b4437)

Miscellaneous Tasks

0.2.5 - 2025-02-17

Features

  • Add Chrome133/Firefox135/Firefox Android135 (#30) - (c909b27)

0.2.4 - 2025-02-16

Features

  • (response) Return an integer representing the HTTP status code (#28) - (93dab63)

Miscellaneous Tasks

Build

0.2.3 - 2025-02-15

Features

  • (client) Improve impersonate FFI (#22) - (f4620ad)

Bug Fixes

Performance

  • (resp) Reduce the range of GIL locks (#21) - (679ed20)
  • Initialize and optimize Python module without requiring GIL (#20) - (f42f3f6)

Testing

Miscellaneous Tasks

0.2.2 - 2025-02-14

Features

  • (client) Add redirect option (#15) - (55d9a2f)
  • (client) Add cookie store option (#14) - (9a1c0de)
  • (resp) Expose Streamer as public API (#19) - (f937f91)
  • (resp) Wrapper easy-to-use StatusCode (#17) - (eceb4b0)
  • Shortcut method request support redirect (#18) - (21410bd)

Build

[0.2.0] - 2025-02-13

Features

  • (client) Adapt client basic request bindings (#11) - (2187bbd)
  • (headers) Implement __str__ for HeaderMap - (9b63009)
  • (method) Method implement __str__ - (bd70b17)
  • (resp) Allows thread-safe operation of Response (#9) - (39a5cef)
  • (response) Add cookies support (#6) - (dea1240)
  • (response) Add streaming support (#5) - (99c9685)
  • (response) Add content_length getter default zero - (7824ad9)
  • (response) Add encoding getter (#4) - (ece446d)
  • Add proxy binding - (b86c9b2)
  • Improve the basic body request (#10) - (46df535)
  • Implement str for Impersonate - (c51ffe0)
  • Complete the basic shortcut request (#7) - (849d320)
  • Complete basic request response bindings (#3) - (465d7ad)

Performance

  • (resp) Improve drop response overhead (#8) - (26eca5f)

Styling

Miscellaneous Tasks

  • Update docs - (cdf16a7)
  • Update HeaderMap gen stub pymethods - (e6b564c)
  • Update Python SocketAddr type information - (8be15b0)
  • Update Python HeaderMap type information - (ac4aebf)
  • Update Python HeaderMap type information - (ccc6e10)
  • Update Python type information - (cc94022)
  • Adding Python type information - (a7e357c)
  • Remove #[allow(dead_code)] - (cc7153a)
  • Update get docs - (9dc9b87)
  • Delete unused dependencies - (0734197)

Build

  • Update release action - (eeeda61)
  • Add workflow build (#13) - (f1e4652)
  • Add style.yml action - (5fea186)
  • Generate import libraries for Python DLL for MinGW-w64 and MSVC (cross-)compile targets - (98f90a4)

New Contributors ❤️

  • @0x676e67 made their first contribution