ruvoy 0.2.1-x86_64-linux → 0.3.0-x86_64-linux
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 +4 -4
- data/README.md +11 -17
- data/lib/ruvoy/4.0.0/libruvoy_fiber.so +0 -0
- data/lib/ruvoy/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 267edfc5bd783c89f4cdf67a901208abc8bdc864731e317f54844a90edccdc07
|
|
4
|
+
data.tar.gz: 3f2606403c1b214ac244e22bd4eb9bb93fb6a015fbc06cdc57412b7cc9822323
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 04dff6a6abdaaf19a26d522a66d72c334ae59dc2e7b60bd9b149f0196df7718d90a5e41a76e43a743c64353620da088772ced2d13ce00bd32aaf3fa133194405
|
|
7
|
+
data.tar.gz: 4da1c6f133dd80441c1966eb396b1fd6b898d84a094dc8340257cb9b5e758648f5e55130e365a6296aff601426d65c776fde20dad770f784bffad023fd4541b4
|
data/README.md
CHANGED
|
@@ -141,6 +141,10 @@ kept, in memory up to 128 KiB and in a temporary file beyond that, so
|
|
|
141
141
|
Rack versions expect. Raw socket hijacking
|
|
142
142
|
(`rack.hijack`) is not supported; the connection always belongs to Envoy.
|
|
143
143
|
|
|
144
|
+
WebSocket and other upgrades use Rack 3's `rack.protocol` with a streaming
|
|
145
|
+
body instead, over HTTP/1.1 and HTTP/2, once Envoy allows them
|
|
146
|
+
(`upgrade_configs`, plus `allow_connect` for HTTP/2).
|
|
147
|
+
|
|
144
148
|
A response body that fails after its headers are already on the wire resets
|
|
145
149
|
the stream, so the client sees an error rather than a short body that looks
|
|
146
150
|
complete.
|
|
@@ -276,28 +280,18 @@ one request overlap. A repeated response header arrives as an Array.
|
|
|
276
280
|
- `call` buffers the response whole, so `max_response_bytes` bounds what one
|
|
277
281
|
call can hold in memory.
|
|
278
282
|
|
|
279
|
-
`stream` takes the same arguments
|
|
280
|
-
|
|
281
|
-
|
|
283
|
+
`stream` takes the same arguments but returns once the head is in, with a
|
|
284
|
+
body that streams and can be returned as the Rack response, so a proxy is one
|
|
285
|
+
line:
|
|
282
286
|
|
|
283
287
|
```ruby
|
|
284
288
|
run ->(env) { env["ruvoy.upstream"].stream("api", env["REQUEST_METHOD"], env["PATH_INFO"], body: env["rack.input"]) }
|
|
285
289
|
```
|
|
286
290
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
by default, and raises `Ruvoy::UpstreamTimeout`. `timeout:` bounds the whole
|
|
292
|
-
exchange and is unset by default: Envoy answers 504 before the head, and
|
|
293
|
-
resets the stream after it.
|
|
294
|
-
- Envoy applies no flow control to a stream a module starts, so at most
|
|
295
|
-
`upstream.stream_buffer_bytes` (default 1 MiB) of the response waits for a
|
|
296
|
-
slow reader. Past that the stream is reset and the reader gets
|
|
297
|
-
`Ruvoy::UpstreamOverflow`. The request body is held to the same budget until
|
|
298
|
-
Envoy takes it; what Envoy buffers after that is not bounded by Ruvoy.
|
|
299
|
-
- Closing the body before its end, or finishing the request, resets the
|
|
300
|
-
stream. `body.trailers` holds the upstream's trailers once the body has ended.
|
|
291
|
+
Envoy applies no flow control to it, so a reader that falls more than
|
|
292
|
+
`upstream.stream_buffer_bytes` (1 MiB by default) behind has the stream reset.
|
|
293
|
+
With `protocol: "websocket"`, the response upgrades the client too and relays
|
|
294
|
+
both ways.
|
|
301
295
|
|
|
302
296
|
[`examples/extensions`](examples/extensions) runs both against a stand-in
|
|
303
297
|
service, including two calls from one request overlapping.
|
|
Binary file
|
data/lib/ruvoy/version.rb
CHANGED