All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project follows Semantic Versioning.
Unreleased
[0.4.0] - 23.05.2026
Changed
- Run native HTTP requests asynchronously on the shared Tokio runtime instead of blocking DirtyIo NIF calls, improving high-concurrency throughput.
- Abort in-flight native requests when the BEAM caller exits before the response is delivered.
Fixed
- Respect Req
connect_optionsfor proxy configuration, proxy headers, and connect timeout in the nativewreqadapter. - Reject unsupported
connect_optionswith clear adapter errors instead of silently ignoring them.
[0.3.2] - 07.03.2026
Added
- Ship
usage-rules.mdwith the Hex package so consumers and LLM tooling can discover the canonical adapter usage and options.
Changed
- Add a
HexDocspackage link in Hex metadata and a docs link near the top of the README. - Update dev dependencies:
credo,styler, andusage_rules.
[0.3.1] - 07.03.2026
Fixed
- Redirect cookies are now stored against the actual response host, so cookie jars behave correctly across host-changing redirects.
- CI again tests the minimum advertised Elixir version (
~> 1.19).
Changed
- Releases are now tagged automatically when a version bump lands on
main, and the release flow is documented inRELEASE.md.
[0.3.0] - 24.02.2026
Added
:local_addressoption for outbound source IP binding (IPv4/IPv6 tuples and strings).- Local address is included in the client cache key to prevent IP leakage through connection pooling.
[0.2.0] - 23.02.2026
Changed
- Upgraded NIF version to 2.17.
Fixed
- Release workflow now creates GitHub releases on
workflow_dispatchruns. - Release tarball naming aligned with rustler_precompiled expectations.
[0.1.0] - 20.02.2026
Added
- Req adapter with
CloakedReq.attach/2andCloakedReq.impersonate/2. - Browser emulation wiring and structured response/error mapping.
- Cookie jar support (
CloakedReq.CookieJar) with PSL-based domain validation. - Client pooling with TLS session resumption and HTTP keep-alive.
- Configurable
max_body_sizeoption (default 10 MB). - Explicit
:insecure_skip_verifyoption (defaultfalse) for constrained external test environments.