Another happy landing!
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 fromHttpClientBuilder
andRequestBuilderExt
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
andBody::reader_sized
have been renamed toBody::from_reader
andBody::from_reader_sized
, respectively.Body::bytes
has been replaced withBody::from_maybe_shared
, which uses type downcasting to accept aBytes
if given without having thebytes
crate being part of the public API.Body
no longer implementsFrom<Bytes>
for the reason above.Body::text
,Body::text_async
, andBody::json
have all been removed in favor of the equivalent methods provided byResponseExt
. 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 anAsyncRead
must now beSync
so thatBody
implementsSync
. (#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
- Upgrade http from 0.1 to 0.2 (#135)
- Update Public Suffix List to 11f4542
(#166) - Update indicatif requirement from 0.13 to 0.14 (#162) @dependabot-preview
- Update mockito requirement from 0.22 to 0.23 (#163) @dependabot-preview
- Update Public Suffix List to d73f42f
(#149) - Update bytes requirement from 0.4 to 0.5 (#132) @dependabot-preview
- Update Public Suffix List to a406942
(#137)