Skip to content

Releases: sagebind/isahc

Full Send!

11 Mar 01:45
707ad47
Compare
Choose a tag to compare

Changed

  • Implement Send for the opaque Future type returned by ResponseExt::text_async whenever the response body also implements Send. (#173, #175)

Dependency Updates

  • Update Public Suffix List to 9afbb37 (#174)

Another happy landing!

05 Mar 22:24
ed62bd2
Compare
Choose a tag to compare

Welcome to a new decade!

This release includes a number of API improvements and features, as well as a couple bug fixes. The API changes improve ease of use and ergonomics, incorporating the new 0.2 version of the http crate, as well as reduces the number of confusing types to help make finding what you are looking for easier in the documentation.

Breaking Changes

  • Request configuration is now done via the Configurable trait, which unifies the old methods from HttpClientBuilder and RequestBuilderExt into one place. The old methods have been removed, but most programs should compile without changes if the prelude is imported. (#48, #135)
  • Multiple breaking API improvements to Body (#143):
    • Body::reader and Body::reader_sized have been renamed to Body::from_reader and Body::from_reader_sized, respectively.
    • Body::bytes has been replaced with Body::from_maybe_shared, which uses type downcasting to accept a Bytes if given without having the bytes crate being part of the public API.
    • Body no longer implements From<Bytes> for the reason above.
    • Body::text, Body::text_async, and Body::json have all been removed in favor of the equivalent methods provided by ResponseExt. This was done because the body alone is often not enough information to decode responses in a correct manner. (#142)
  • Various improvements to request config bounds that accept more argument types.
  • The cookies feature is no longer enabled by default. (#141)
  • Creating a Body from an AsyncRead must now be Sync so that Body implements Sync. (#172)
  • Response text decoding methods are now behind the text-decoding feature, enabled by default. (#156)

Added

  • Handle more than just UTF-8 when decoding a response into text. (#90, #156)
  • Add ability to bind to specific network interface. (#151, #155)
  • Add ability to pre-populate DNS lookups with predefined mappings. (#114)
  • Add Isahc logo to documentation. (#138) @jmjoy

Fixed

  • Body::is_empty should not return true for a zero-length body that is present (as opposed to no body). (#144)
  • Upgrade curl-sys to fix static linking issues with older versions of macOS (#68, #169)
  • Fix doctests and run cargo fmt (#160) @ggriffiniii

Changed

  • Improve proxy handling test coverage (#167)
  • Make default VersionNegotiation more conservative (#159, #164)
  • Set up code coverage analysis via grcov (#165)

Dependency Updates

Dependency updates

06 Dec 06:29
806cb20
Compare
Choose a tag to compare

Changed

Version negotiation without HTTP/2

26 Nov 01:17
d464747
Compare
Choose a tag to compare

Fixed

  • Only request upgrade to HTTP/2 if it is actually available. (#131) @sagebind

A Futures Fall

23 Nov 00:27
ce97032
Compare
Choose a tag to compare

This release includes an upgrade to the much awaited futures 0.3, as well as some great new features and a few small breaking improvements to the API.

Breaking Changes

  • Upgrade from futures-preview to futures 0.3. Largely the same as futures-preview, but a breaking change due to the crate switch. (#116) @sagebind
  • The preferred_http_version() method has been removed in favor of a new VersionNegotiation API with more robust configuration, including support for HTTP/2 Prior Knowledge. Generally this will be a mechanical migration from preferred_http_version() to version_negotiation(). If you were previously passing in Version::HTTP_2 in order to enable HTTP/2 on insecure requests, you can now remove this as Isahc will include an Upgrade header and switch to HTTP/2 automatically by default. (#129) @sagebind
  • A couple various boolean SSL options have been replaced with an ssl_options() method that permits you to set multiple flags with greater granularity and control. (#128) @sagebind

Added

  • Added options for setting a CA certificate, disabling certificate revocation checks, and disabling proxies globally or for specific hosts. (#124) @ohadravid
  • Document json feature in examples. (#121) @gbip
  • Add a new API for HTTP auth. This includes a new crate feature spnego which allows you to configure HTTP Negotiate. Basic and digest auth are also supported. (#115) @sagebind

Changed

Metrics API

08 Nov 03:26
1bd23f4
Compare
Choose a tag to compare

Added

  • Add a new metrics API for inspecting various request timing information. (#47, #88) @sagebind

Changed

Connection config and bugfixes

04 Nov 03:37
c24581f
Compare
Choose a tag to compare

This release adds several new options for configuring connection behavior on an HttpClient, as well as a couple important bug fixes.

Added

  • Add options for configuring the connection cache (#95)
  • Add option to configure DNS caching per client (#96)
  • Add connection limit options for clients (#92)

Fixed

  • Fix agent shutdown caused by unpause errors (#97, #101)
  • Keep all instances of the same response header (#100, #107) @alexcormier
  • Fix auto referer not setting referer header (#91)

Changed

  • Add better error messaging and logging around agent disconnect (#99)
  • Update mockito requirement from 0.20 to 0.21 (#85)

Header value parsing fix

25 Sep 00:39
92767a2
Compare
Choose a tag to compare

Fixed

  • Fix parsing headers with a colon in their value. Previously headers like Location: https://example.org were being truncated to Location: https. (#82) @puckipedia

Changed

  • Update env_logger requirement from 0.6 to 0.7. (#80)

Expose effective URI in response

06 Sep 05:05
Compare
Choose a tag to compare

Added

  • Add ResponseExt::effective_uri for retrieving the last visited URI during a single request-response cycle. (#74)

Fixed

  • Fix panic due to broken implementation in cookie jar middleware. (#70)

Add (danger) ignore SSL option & bugfixes

05 Sep 05:38
Compare
Choose a tag to compare

Added

  • Add the ability to ignore SSL validation. (#71) @jlricon

Fixed

  • Pull in read-after-EOF bugfix in Sluice. (#72, #73)

Changed