All notable changes to surf will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
h1-client
now usesdashmap
at version5.x >
, fixing an unsoundness issue.
- Now only uses
dashmap
forh1-client
.
Same as 6.5.0 with one change:
Config::max_connections_per_host()
is now properly named Config::set_max_connections_per_host()
.
(Yanked)
Config
has been stabilized and is now available by default!wasm_client
support forConfig
(only timeouts).Config::max_connections_per_host
(Supported onh1_client
andcurl_client
.)
H1Client::with_max_connections()
will be superseded byConfig::max_connections_per_host
.
- Added
"unstable-config"
to the docs builds.
- Added a new
unstable-config
feature, which exposes runtime configuration via a newConfig
struct.
- Multiple headers of the same name are now present with any client backend and not just
h1_client
. - Connection when multiple IPs are present for a hostname not function with the
h1_client
backend.
h1_client
connection pools now properly check if connections are still alive before recycling them.- Like, actually properly this time.
- There is a test now to ensure closed connections don't cause errors.
h1_client
connection pools now properly check if connections are still alive before recycling them.
(This was the same thing as 6.3.1 released by git accident.)
- Allow http-client to build & run properly when
h1_client
is enabled without either tls option. - Prefer
rustls
if both tls features are enabled.
- More exhaustive CI for feature combinations.
- Connection pooling (HTTP/1.1
keep-alive
) forh1_client
(default). native-tls
(default) andrustls
feature flags.- Only works with
h1_client
.
- Only works with
- Isahc metrics as a response extension for
curl_client
.
Box<dyn HttpClient>
no longer infinitely recurses.curl_client
now always correctly reads the response body.hyper_client
should now build correctly.WasmClient
fetch from worker scope now works correctly.
- Improved CI
This release implements HttpClient
for Box<dyn HttpClient>
.
impl HttpClient for Box<dyn HttpClient>
This release brings improvements for HyperClient
(hyper_client
feature).
HyperClient
now implsDefault
.HyperClient::from_client(hyper::Client<C>)
.
HyperClient
now re-uses the internal client, allowing connection pooling.
This release moves the responsibility of any client sharing to the user.
HttpClient
implementations no longerimpl Clone
.- The responsibility for sharing is the user's.
H1Client
can no longer be instatiated viaH1Client {}
.::new()
should be used.
- Fixed a body stream translation bug in the
hyper_client
.
This release includes an optional backend using hyper.rs, and uses async-trait for HttpClient
.
hyper_client
feature, for using hyper.rs as the client backend.
HttpClient
now uses async-trait.- This attribute is also re-exported as
http_client::async_trait
.
- This attribute is also re-exported as
- Fixed WASM compilation.
- Fixed Isahc (curl) client translation setting duplicate headers incorrectly.
This release allows HttpClient
to be used as a dynamic Trait object.
HttpClient
: removedClone
bounds.HttpClient
: removedError
type.
This patch updates http-client
to http-types 2.0.0
and a new version of async-h1
.
- http types and async-h1 for 2.0.0 #27
- Added a new backend:
h1-client
#22
- All types are now based from
hyperium/http
tohttp-types
#22