mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-12-15 00:01:02 -05:00
bumped to 0.10.0
This commit is contained in:
parent
3e3003a313
commit
8f022c43ea
66
doc/release_notes/0_10_0.md
Normal file
66
doc/release_notes/0_10_0.md
Normal file
@ -0,0 +1,66 @@
|
||||
# 0.10.0
|
||||
|
||||
## Features
|
||||
|
||||
### Streaming Requests
|
||||
|
||||
The `stream` plugin adds functionality to handle long-lived stream responses, such as the Twitter Streaming API:
|
||||
|
||||
```ruby
|
||||
http = HTTPX.plugin(:stream)
|
||||
|
||||
http.get(stream_api_endpoint, stream: true).each_line do |line|
|
||||
payload = JSON.parse(line)
|
||||
# do smth with this
|
||||
end
|
||||
```
|
||||
|
||||
https://gitlab.com/honeyryderchuck/httpx/-/wikis/Stream
|
||||
|
||||
### Rate Limiter
|
||||
|
||||
The `rate_limiter` plugin adds functionality for automatically hooking into rate-limiting responses coming from the server, and waits-and-retries them according to what the server advertises.
|
||||
|
||||
```ruby
|
||||
HTTPX.plugin(:rate_limiter).get(rate_limited_api_endpoint)
|
||||
# => 429 Too Many Requests .... Retry-After: 3
|
||||
# waits 3 seconds before retrying
|
||||
```
|
||||
|
||||
https://gitlab.com/honeyryderchuck/httpx/-/wikis/Rate-Limiter
|
||||
|
||||
### Ruby 3
|
||||
|
||||
This release is the first testing against and targeting Ruby 3 and some of the new features.
|
||||
|
||||
It ships with RBS signatures for all of the client-facing APIs. There's non 100% typinng coverage yet, but I'm gradually (pun intended) working on it.
|
||||
|
||||
|
||||
## Improvements
|
||||
|
||||
### IDN support
|
||||
|
||||
Requests where the domains are formed by non-ASCII characters, are now supported (if you're using ruby 2.3 or more recent).
|
||||
|
||||
```ruby
|
||||
HTTPX.get("http://bücher.ch") # it works!
|
||||
```
|
||||
|
||||
### cookies plugin full implementation
|
||||
|
||||
|
||||
The `cookies` plugin is now independent of 3rd-party gems. The motivation for this was that `http-cookie` was dependent of both `domain_name` and `unf` gems, which are currently unusable in ruby 3, and haven't received any update in the last 3 years.
|
||||
|
||||
The implementation is still compliant with RFC6265, and all of the features provided in earlier versions were ported, exceptwhen loading the cookie jar stored in a Netscape-format file or Mozilla sqlite database, which were not documented for `httpx` anyway, and I considered too niche to backport. If you feel `httpx` should support those, do let me know.
|
||||
|
||||
Some code from these gems, including the ruby punycode implementation, is now part of the source tree, along with its licenses and attribution mentions.
|
||||
|
||||
## Bugfixes
|
||||
|
||||
|
||||
Several edge-case bugs have been fixed solely by the integration of RBS runtime type checking, including some bugs around closing a connection pool that can cause loops.
|
||||
|
||||
|
||||
## Regressions
|
||||
|
||||
`HTTPX::ErrorResponse`'s methods `#headers` and `#reason` were removed, as they didn't provide much value. Consider calling `#raise_for_status` or checking the API (`is_a?(HTTPX::ErrorResponse)` or `respond_to?(:error)` are strategies for this).
|
||||
@ -1,5 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module HTTPX
|
||||
VERSION = "0.9.0"
|
||||
VERSION = "0.10.0"
|
||||
end
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
-
|
||||
-
|
||||
name: "0.10.0"
|
||||
path: "0_10_0_md.html"
|
||||
-
|
||||
name: "0.9.0"
|
||||
path: "0_9_0_md.html"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user