async-http 0.80.1 → 0.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6563a3eb6c06ca33e6038985b9f4e4608355f8179d010b009f37ae33bb5db906
4
- data.tar.gz: ca7d4e2483b0a9c9e277fbbca2741de22e351240b5498317f8373b05c7d6ab3c
3
+ metadata.gz: 78fb5808dae4ef161e8ae21a72c9ec06dd740eced5e7afcc57b7de091f728ffa
4
+ data.tar.gz: 0d9b421eb5f7130983b1d5903da05b113718fdfcaef497eeace3dae0a57c98d1
5
5
  SHA512:
6
- metadata.gz: f9f2673c93c361ba9afa178c9a7742aeb2848e44ccec6a483a06694655c9a37364ccd76218f76e111522b8d951ccbe89dee8a32f14a685f134cedaf108e33921
7
- data.tar.gz: d273737eb122e13aa9464420bde93a57488e608d41f2c4006f44e9083b6057a20a3904af0db07fa2ab9b564afdceeb40d30823bc6dd9b70460d6a88644a053b3
6
+ metadata.gz: e807158cf95b6f822bc84d8592c296c2bff6700985372c54425a679385383ab23c143cd0e615bf9f3a5b0450a602ce3862cfa3bbdf93426cd680993b94d6a74d
7
+ data.tar.gz: 2585ec5a381fc5c2411ed6205cae1879534aff66c250b50f61acf4d9d4a0c50fdaf8a997baa29191b32effdde185f5e4b33101d99095f8ac8a51e3fae44f0c33
checksums.yaml.gz.sig CHANGED
Binary file
@@ -18,7 +18,6 @@ require_relative "protocol"
18
18
  module Async
19
19
  module HTTP
20
20
  DEFAULT_RETRIES = 3
21
- DEFAULT_CONNECTION_LIMIT = nil
22
21
 
23
22
  class Client < ::Protocol::HTTP::Methods
24
23
  # Provides a robust interface to a server.
@@ -30,12 +29,12 @@ module Async
30
29
  # @param protocol [Protocol::HTTP1 | Protocol::HTTP2 | Protocol::HTTPS] the protocol to use.
31
30
  # @param scheme [String] The default scheme to set to requests.
32
31
  # @param authority [String] The default authority to set to requests.
33
- def initialize(endpoint, protocol: endpoint.protocol, scheme: endpoint.scheme, authority: endpoint.authority, retries: DEFAULT_RETRIES, connection_limit: DEFAULT_CONNECTION_LIMIT)
32
+ def initialize(endpoint, protocol: endpoint.protocol, scheme: endpoint.scheme, authority: endpoint.authority, retries: DEFAULT_RETRIES, **options)
34
33
  @endpoint = endpoint
35
34
  @protocol = protocol
36
35
 
37
36
  @retries = retries
38
- @pool = make_pool(connection_limit)
37
+ @pool = make_pool(**options)
39
38
 
40
39
  @scheme = scheme
41
40
  @authority = authority
@@ -191,8 +190,20 @@ module Async
191
190
  return response
192
191
  end
193
192
 
194
- def make_pool(connection_limit)
195
- Async::Pool::Controller.wrap(limit: connection_limit) do
193
+ def assign_default_tags(tags)
194
+ tags[:endpoint] = @endpoint.to_s
195
+ tags[:protocol] = @protocol.to_s
196
+ end
197
+
198
+ def make_pool(**options)
199
+ if connection_limit = options.delete(:connection_limit)
200
+ warn "The connection_limit: option is deprecated, please use limit: instead.", uplevel: 2
201
+ options[:limit] = connection_limit
202
+ end
203
+
204
+ self.assign_default_tags(options[:tags] ||= {})
205
+
206
+ Async::Pool::Controller.wrap(**options) do
196
207
  Console.logger.debug(self) {"Making connection to #{@endpoint.inspect}"}
197
208
 
198
209
  @protocol.client(@endpoint.connect)
@@ -41,17 +41,6 @@ module Async
41
41
  false
42
42
  end
43
43
 
44
- def read_line?
45
- @stream.read_until(CRLF)
46
- rescue => error
47
- # Bascially, any error will cause the connection to be closed:
48
- return nil
49
- end
50
-
51
- def read_line
52
- @stream.read_until(CRLF) or raise EOFError, "Could not read line!"
53
- end
54
-
55
44
  def peer
56
45
  @stream.io
57
46
  end
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Async
7
7
  module HTTP
8
- VERSION = "0.80.1"
8
+ VERSION = "0.82.0"
9
9
  end
10
10
  end
data/readme.md CHANGED
@@ -16,6 +16,14 @@ Please see the [project documentation](https://socketry.github.io/async-http/) f
16
16
 
17
17
  Please see the [project releases](https://socketry.github.io/async-http/releases/index) for all releases.
18
18
 
19
+ ### v0.82.0
20
+
21
+ - `protocol-http1` introduces a line length limit for request line, response line, header lines and chunk length lines.
22
+
23
+ ### v0.81.0
24
+
25
+ - Expose `protocol` and `endpoint` as tags to `async-pool` for improved instrumentation.
26
+
19
27
  ### v0.77.0
20
28
 
21
29
  - Improved HTTP/1 connection handling.
@@ -29,7 +37,7 @@ Please see the [project releases](https://socketry.github.io/async-http/releases
29
37
 
30
38
  ### v0.75.0
31
39
 
32
- - Better handling of HTTP/1 \&lt;-\&gt; HTTP/2 proxying, specifically upgrade/CONNECT requests.
40
+ - Better handling of HTTP/1 \<-\> HTTP/2 proxying, specifically upgrade/CONNECT requests.
33
41
 
34
42
  ### v0.74.0
35
43
 
data/releases.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Releases
2
2
 
3
+ ## v0.82.0
4
+
5
+ - `protocol-http1` introduces a line length limit for request line, response line, header lines and chunk length lines.
6
+
7
+ ## v0.81.0
8
+
9
+ - Expose `protocol` and `endpoint` as tags to `async-pool` for improved instrumentation.
10
+
3
11
  ## v0.77.0
4
12
 
5
13
  - Improved HTTP/1 connection handling.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.80.1
4
+ version: 0.82.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -58,7 +58,7 @@ cert_chain:
58
58
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
59
59
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
60
60
  -----END CERTIFICATE-----
61
- date: 2024-10-12 00:00:00.000000000 Z
61
+ date: 2024-10-15 00:00:00.000000000 Z
62
62
  dependencies:
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: async
@@ -80,42 +80,42 @@ dependencies:
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0.7'
83
+ version: '0.9'
84
84
  type: :runtime
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0.7'
90
+ version: '0.9'
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: io-endpoint
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '0.11'
97
+ version: '0.14'
98
98
  type: :runtime
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '0.11'
104
+ version: '0.14'
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: io-stream
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '0.4'
111
+ version: '0.6'
112
112
  type: :runtime
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '0.4'
118
+ version: '0.6'
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: protocol-http
121
121
  requirement: !ruby/object:Gem::Requirement
@@ -134,16 +134,16 @@ dependencies:
134
134
  name: protocol-http1
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - "~>"
137
+ - - ">="
138
138
  - !ruby/object:Gem::Version
139
- version: '0.27'
139
+ version: 0.28.1
140
140
  type: :runtime
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - "~>"
144
+ - - ">="
145
145
  - !ruby/object:Gem::Version
146
- version: '0.27'
146
+ version: 0.28.1
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: protocol-http2
149
149
  requirement: !ruby/object:Gem::Requirement
@@ -162,16 +162,30 @@ dependencies:
162
162
  name: traces
163
163
  requirement: !ruby/object:Gem::Requirement
164
164
  requirements:
165
- - - ">="
165
+ - - "~>"
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0.10'
168
168
  type: :runtime
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
- - - ">="
172
+ - - "~>"
173
173
  - !ruby/object:Gem::Version
174
174
  version: '0.10'
175
+ - !ruby/object:Gem::Dependency
176
+ name: metrics
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '0.12'
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '0.12'
175
189
  description:
176
190
  email:
177
191
  executables: []
metadata.gz.sig CHANGED
Binary file