| Crates.io | capnweb-transport |
| lib.rs | capnweb-transport |
| version | 0.1.0 |
| created_at | 2025-09-30 00:49:37.405195+00 |
| updated_at | 2025-09-30 00:49:37.405195+00 |
| description | Transport layer implementations for Cap'n Web protocol (HTTP, WebSocket, WebTransport) |
| homepage | https://github.com/currentspace/capn-rs |
| repository | https://github.com/currentspace/capn-rs |
| max_upload_size | |
| id | 1860432 |
| size | 181,858 |
Transport layer implementations for Cap'n Web protocol (HTTP, WebSocket, WebTransport).
capnweb-transport provides multiple transport implementations for the Cap'n Web RPC protocol:
Add to your Cargo.toml:
[dependencies]
capnweb-transport = "0.1.0"
Using different transports:
use capnweb_transport::{Transport, HttpBatchTransport, WebSocketTransport};
use capnweb_core::{Message, CallId, CapId};
use serde_json::json;
// Create a message to send
let message = Message::Call {
id: CallId::new(1),
target: CapId::new(0),
method: "echo".to_string(),
args: vec![json!("hello world")],
};
// HTTP Batch transport
let transport = HttpBatchTransport::new("http://localhost:8080/rpc/batch");
transport.send(message.clone()).await?;
let response = transport.receive().await?;
// Or use WebSocket transport
let transport = WebSocketTransport::connect("ws://localhost:8080/rpc/ws").await?;
transport.send(message).await?;
let response = transport.receive().await?;
websocket (default): WebSocket transport supporthttp-batch (default): HTTP batch transport supportwebtransport: WebTransport/HTTP3 support (experimental)Choose your transport based on your needs:
This project is licensed under either of
at your option.