You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`get_context_or_default` - Get `ConnectContext` from request extensions (with fallback)
67
+
68
+
**`RequestPipeline` methods:**
69
+
-`decode` - Decode from HTTP request (read body, decompress, decode)
70
+
-`decode_bytes` - Decode from raw bytes (decompress, check size, decode)
66
71
-`decode_enveloped_bytes` - Decode from enveloped bytes (for `application/connect+json` or `application/connect+proto`)
67
72
68
73
**Response side:**
@@ -91,9 +96,8 @@ These are the types you interact with when building services:
91
96
| Type | Purpose |
92
97
|------|---------|
93
98
|`ConnectRequest<T>`| Axum extractor - deserializes protobuf/JSON from request body |
94
-
|`ConnectRequest<Streaming<T>>`| Extractor for client/bidi streaming requests (unified pattern) |
99
+
|`ConnectRequest<Streaming<T>>`| Extractor for client/bidi streaming requests |
95
100
|`Streaming<T>`| Stream of messages from client (similar to Tonic's `Streaming<T>`) |
96
-
|`ConnectStreamingRequest<T>`| Extractor for client streaming requests (legacy) |
97
101
|`ConnectResponse<T>`| Response wrapper - encodes per detected protocol |
98
102
|`ConnectResponse<StreamBody<S>>`| Server streaming response wrapper |
99
103
|`StreamBody<S>`| Marker for streaming response bodies |
@@ -272,12 +276,14 @@ Built-in implementations:
272
276
273
277
The `default_codec()` function returns the appropriate codec for a `CompressionEncoding`. Custom codecs (zstd, brotli, etc.) can implement the `Codec` trait.
274
278
279
+
Response compression negotiation follows RFC 7231: `negotiate_response_encoding()` parses `Accept-Encoding` headers respecting client preference order and `q=0` (not acceptable) values.
280
+
275
281
### message/ module
276
282
277
283
| Module | Purpose |
278
284
|--------|---------|
279
285
|`request.rs`|`ConnectRequest<T>` and `Streaming<T>` extractors |
280
-
|`response.rs`|`ConnectResponse<T>` and `ConnectResponse<StreamBody<S>>` encoding |
286
+
|`response.rs`|`ConnectResponse<T>` and streaming response encoding |
0 commit comments