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-clientnow usesdashmapat version5.x >, fixing an unsoundness issue.
- Now only uses
dashmapforh1-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)
Confighas been stabilized and is now available by default!wasm_clientsupport forConfig(only timeouts).Config::max_connections_per_host(Supported onh1_clientandcurl_client.)
H1Client::with_max_connections()will be superseded byConfig::max_connections_per_host.
- Added
"unstable-config"to the docs builds.
- Added a new
unstable-configfeature, which exposes runtime configuration via a newConfigstruct.
- 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_clientbackend.
h1_clientconnection 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_clientconnection 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_clientis enabled without either tls option. - Prefer
rustlsif both tls features are enabled.
- More exhaustive CI for feature combinations.
- Connection pooling (HTTP/1.1
keep-alive) forh1_client(default). native-tls(default) andrustlsfeature 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_clientnow always correctly reads the response body.hyper_clientshould now build correctly.WasmClientfetch 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).
HyperClientnow implsDefault.HyperClient::from_client(hyper::Client<C>).
HyperClientnow re-uses the internal client, allowing connection pooling.
This release moves the responsibility of any client sharing to the user.
HttpClientimplementations no longerimpl Clone.- The responsibility for sharing is the user's.
H1Clientcan 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_clientfeature, for using hyper.rs as the client backend.
HttpClientnow 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: removedClonebounds.HttpClient: removedErrortype.
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/httptohttp-types#22