HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cloudflare
capnweb
TypeScript2025–2025
cloudflare / capnweb

capnweb

JavaScript/TypeScript-native, low-boilerplate, object-capability RPC system

8Distinct people
9Mentions
1Explicit recommenders
4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

JavaScript/TypeScript-native, low-boilerplate, object-capability RPC system

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

If you have ever had to use gRPC & web, then you will know how painful Protobuf is to make it work on the web. I love the simplicity of Cap'n Web…

srameshc used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:45:45 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by day9 dated mentions

Observed mentions: 2025-09-22 14:19:04 UTC to 2025-09-30 15:01:15 UTC.

0123452025-09-22 00:00:00 UTC to 2025-09-23 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 commentsSep 222025-09-23 00:00:00 UTC to 2025-09-24 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-09-24 00:00:00 UTC to 2025-09-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-25 00:00:00 UTC to 2025-09-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-26 00:00:00 UTC to 2025-09-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsSep 262025-09-27 00:00:00 UTC to 2025-09-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-28 00:00:00 UTC to 2025-09-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-29 00:00:00 UTC to 2025-09-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-30 00:00:00 UTC to 2025-10-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 commentsSep 30

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Sep 222025-09-22 00:00:00 UTC2025-09-23 00:00:00 UTC514
Sep 232025-09-23 00:00:00 UTC2025-09-24 00:00:00 UTC101
Sep 242025-09-24 00:00:00 UTC2025-09-25 00:00:00 UTC000
Sep 252025-09-25 00:00:00 UTC2025-09-26 00:00:00 UTC000
Sep 262025-09-26 00:00:00 UTC2025-09-27 00:00:00 UTC000
Sep 272025-09-27 00:00:00 UTC2025-09-28 00:00:00 UTC000
Sep 282025-09-28 00:00:00 UTC2025-09-29 00:00:00 UTC000
Sep 292025-09-29 00:00:00 UTC2025-09-30 00:00:00 UTC000
Sep 302025-09-30 00:00:00 UTC2025-10-01 00:00:00 UTC303

What Hacker News says

3 sources
OP here. Thanks for all the thoughtful feedback, I really appreciate it. I mentioned in the README that I leaned heavily on Claude Opus for the port. One of the biggest challenges was tamping down its default “everything is production-ready in a week” optimism. That said, I also discovered along the way which guardrails worked and which didn’t for guiding it toward a compliant implementation. It was good learning, and honestly, fun. I’m genuinely interested in the Cap’n Web protocol. Writing this in Rust gave me a much clearer sense of where I would and wouldn’t use it. Credit to the Cloudflare team for defining the protocol and shipping a solid reference implementation, this wouldn’t have been possible otherwise. A good example of why a second client (even one bootstrapped with AI) is useful: in implementation I ran into a spec ambiguity
Read the rest
around array escaping (documented here: https://github.com/cloudflare/capnweb/issues/68 ). My initial Rust serializer emitted unescaped arrays at lower levels, and I even patched the TS reference to accept them. In the end, escaping arrays at all levels turned out to be the cleaner and more consistent approach, so I’ve recommended that clarification in the issue. On naming: fair point about possible confusion with Cap’n Proto. If the Cloudflare team ever wants the crate names for an official Rust impl, they’re theirs. If there’s interest in pushing this to production ready quality, I’d also be glad to put in the work. Thanks again for the constructive input. Happy to dive into technical details if folks are curious.
In Show HN: Cap'n-rs – Rust implementation of Cloudflare's Cap'n Web protocol

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.