Show HN: Cap'n-rs – Rust implementation of Cloudflare's Cap'n Web protocol
by brian_meek|about 1 month ago|52 points|35 comments
Last week Cloudflare released Cap'n Web [1], a schema-free capability-based RPC protocol. I built capn-rs this week - a Rust implementation with full wire protocol compatibility.
Links:
GitHub: https://github.com/currentspace/capn-rs
Crates: https://crates.io/crates/capnweb-server
API docs: https://docs.rs/capnweb-server
What's working:
Wire compatibility verified via integration tests against TypeScript reference
Multi-transport: HTTP batch, WebSocket, WebTransport (HTTP/3)
Complete IL (intermediate language) expression evaluator
Promise pipelining with dependency resolution
Comprehensive test coverage
The interesting design challenge was mapping Cap'n Web's record-replay .map() semantics to Rust's type system while maintaining ergonomic APIs. Cap'n Web records operations on placeholder values to build execution plans - in Rust this became a clean builder pattern with type-level guarantees.
Built this as an experiment with Claude Code for porting complex protocols. The AI handled mechanical translation well, but architectural decisions (especially around async/await patterns and lifetime management) required human judgment.
This is early days - I'd especially appreciate feedback on API ergonomics and any edge cases I might have missed. Also happy to discuss the protocol design or the AI-assisted development experience.
[1] https://news.ycombinator.com/item?id=45332883