···2222- Use as much or as little from the crates as you need
232324242525+### Streaming Support
2626+2727+Jacquard supports efficient streaming for large payloads:
2828+2929+- **Blob uploads/downloads**: Stream media without loading into memory
3030+- **CAR file streaming**: Efficient repo sync operations
3131+- **Thin forwarding**: Pipe data between endpoints
3232+- **WebSocket support**: Bidirectional streaming connections
3333+3434+Enable with the `streaming` feature flag. See `jacquard-common` documentation for details.
3535+2536## Example
26372738Dead simple API client. Logs in with OAuth and prints the latest 5 posts from your timeline.
+45
crates/jacquard-common/README.md
···11+# jacquard-common
22+33+Core AT Protocol types and HTTP client abstraction for Jacquard.
44+55+## Features
66+77+### `streaming` (optional)
88+99+Adds support for streaming HTTP request and response bodies:
1010+1111+- `ByteStream` / `ByteSink`: Platform-agnostic stream abstractions
1212+- `HttpClientExt`: Streaming methods for HTTP client
1313+- `StreamingResponse`: XRPC streaming response wrapper
1414+- Error types: `StreamError` with `StreamErrorKind`
1515+1616+Works on both native and WASM targets via `n0-future`.
1717+1818+**Example:**
1919+```rust
2020+use jacquard_common::http_client::{HttpClient, HttpClientExt};
2121+use futures::StreamExt;
2222+2323+let client = reqwest::Client::new();
2424+let response = client.send_http_streaming(request).await?;
2525+2626+let stream = response.into_parts().1.into_inner();
2727+futures::pin_mut!(stream);
2828+while let Some(chunk) = stream.next().await {
2929+ // Process streaming chunks
3030+}
3131+```
3232+3333+### `websocket` (optional)
3434+3535+Adds WebSocket client abstraction:
3636+3737+- `WebSocketClient` trait
3838+- `WebSocketConnection` with bidirectional streams
3939+- Uses same `ByteStream`/`ByteSink` as HTTP streaming
4040+4141+Requires the `streaming` feature.
4242+4343+### `reqwest-client` (optional)
4444+4545+Implements `HttpClient` and `HttpClientExt` for `reqwest::Client`.