capnweb-transport
Transport layer implementations for Cap'n Web protocol (HTTP, WebSocket, WebTransport).
Overview
capnweb-transport provides multiple transport implementations for the Cap'n Web RPC protocol:
- HTTP Batch: Traditional request/response with batching support
- WebSocket: Full-duplex streaming with multiplexing
- WebTransport: Modern HTTP/3-based transport with stream multiplexing
Features
- Pluggable transport abstraction
- Automatic reconnection and error recovery
- Message framing and buffering
- Backpressure handling
- Connection pooling (HTTP)
Usage
Add to your Cargo.toml:
[]
= "0.1.0"
Using different transports:
use ;
use ;
use json;
// Create a message to send
let message = Call ;
// HTTP Batch transport
let transport = new;
transport.send.await?;
let response = transport.receive.await?;
// Or use WebSocket transport
let transport = connect.await?;
transport.send.await?;
let response = transport.receive.await?;
Feature Flags
websocket(default): WebSocket transport supporthttp-batch(default): HTTP batch transport supportwebtransport: WebTransport/HTTP3 support (experimental)
Transport Selection
Choose your transport based on your needs:
- HTTP Batch: Simple, firewall-friendly, works everywhere
- WebSocket: Real-time updates, lower latency, persistent connection
- WebTransport: Best performance, multiplexing, requires HTTP/3
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.