HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
WICG
local-peer-to-peer
Bikeshed2024–2026
WICG / local-peer-to-peer

local-peer-to-peer

↔️ Proposal for local communication between browsers without the aid of a server.

2Distinct people
3Mentions
1Explicit recommenders
154GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

↔️ Proposal for local communication between browsers without the aid of a server.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

> Whether it's one shape or the other doesn't take affect the network protocol underneath. So, the issue I see talks about the API, but the duplication in the specification is…

saurik 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

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 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 month3 dated mentions

Observed mentions: 2024-11-05 11:19:06 UTC to 2026-08-26 08:04:59 UTC.

0122024-11-01 00:00:00 UTC to 2024-12-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsNov 20242024-12-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2025-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-02-01 00:00:00 UTC to 2025-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-01 00:00:00 UTC to 2025-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-01 00:00:00 UTC to 2025-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-05-01 00:00:00 UTC to 2025-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-01 00:00:00 UTC to 2025-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-07-01 00:00:00 UTC to 2025-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-01 00:00:00 UTC to 2025-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-01 00:00:00 UTC to 2025-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsSep 20252025-10-01 00:00:00 UTC to 2025-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-01 00:00:00 UTC to 2025-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2026-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-01 00:00:00 UTC to 2026-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-01 00:00:00 UTC to 2026-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-01 00:00:00 UTC to 2026-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-01 00:00:00 UTC to 2026-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-06-01 00:00:00 UTC to 2026-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-01 00:00:00 UTC to 2026-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-01 00:00:00 UTC to 2026-09-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsAug 2026

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
Nov 20242024-11-01 00:00:00 UTC2024-12-01 00:00:00 UTC202
Dec 20242024-12-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
Jan 20252025-01-01 00:00:00 UTC2025-02-01 00:00:00 UTC000
Feb 20252025-02-01 00:00:00 UTC2025-03-01 00:00:00 UTC000
Mar 20252025-03-01 00:00:00 UTC2025-04-01 00:00:00 UTC000
Apr 20252025-04-01 00:00:00 UTC2025-05-01 00:00:00 UTC000
May 20252025-05-01 00:00:00 UTC2025-06-01 00:00:00 UTC000
Jun 20252025-06-01 00:00:00 UTC2025-07-01 00:00:00 UTC000
Jul 20252025-07-01 00:00:00 UTC2025-08-01 00:00:00 UTC000
Aug 20252025-08-01 00:00:00 UTC2025-09-01 00:00:00 UTC000
Sep 20252025-09-01 00:00:00 UTC2025-10-01 00:00:00 UTC000
Oct 20252025-10-01 00:00:00 UTC2025-11-01 00:00:00 UTC000
Nov 20252025-11-01 00:00:00 UTC2025-12-01 00:00:00 UTC000
Dec 20252025-12-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
Jan 20262026-01-01 00:00:00 UTC2026-02-01 00:00:00 UTC000
Feb 20262026-02-01 00:00:00 UTC2026-03-01 00:00:00 UTC000
Mar 20262026-03-01 00:00:00 UTC2026-04-01 00:00:00 UTC000
Apr 20262026-04-01 00:00:00 UTC2026-05-01 00:00:00 UTC000
May 20262026-05-01 00:00:00 UTC2026-06-01 00:00:00 UTC000
Jun 20262026-06-01 00:00:00 UTC2026-07-01 00:00:00 UTC000
Jul 20262026-07-01 00:00:00 UTC2026-08-01 00:00:00 UTC000
Aug 20262026-08-01 00:00:00 UTC2026-09-01 00:00:00 UTC110

What Hacker News says

3 sources
saurik·Nov 5, 2024Recommendation phrase
> Whether it's one shape or the other doesn't take affect the network protocol underneath. So, the issue I see talks about the API, but the duplication in the specification is at the level of the network protocol: there are different capabilities being exposed and different kinds of headers being attached to the packets. Honestly, it just isn't clear to me that the entire concept of these stacks is even trying to be simple, and so my experience has been that deep thought that leads to simpler things isn't considered valuable. I mean, as a single trivial related example: I love WebRTC, I have a giant stack built using it, and I even can mostly defend how it was architected... but the idea that every packet can be tagged as either a string or a binary is superfluous complexity that is not present in any comparable protocol including the now
Read the rest
multiple competing specifications for implementing similar things, as we have somehow ended up with all of WebSockets, WebRTC, and WebTransport. Only, here, in this spec, people not only want string and binary, they want to add a third one?! https://github.com/WICG/local-peer-to-peer/issues/13 This just isn't needed, and is at the point of strongly coupling the entire protocol to JavaScript, as, otherwise, what even is the difference between a "Blob" and an "ArrayBuffer"? If you are receiving a packet, you should either always get an ArrayBuffer or a Blob depending on if you want the underlying protocol to construct messages or streams. (And, in this case, it should be a ArrayBuffer.) It should then be easy to construct a Blob (if we must have this idea at all) from an ArrayBuffer; and it is already (apparently) easy to get a String or ArrayBuffer from a Blob (though this inherently requires a copy; but again: this is a packet oriented protocol, so it should always be using ArrayBuffer). Meanwhile, there should be a really cheap way of getting a String from an ArrayBuffer, as JavaScript uses UCS-2 anyway, so there is no true "encoding" that happens... it could be this is the case, but I'm pretty sure that the current way to do this always causes a needless copy. This would not only be sane, this is effectively how the other two related protocols already work: WebTransport doesn't have any of this silliness, nor did WebSockets; they let you configure how you receive data, but that's a decision for the receiver, not the sender. And I must underscore that point, as if I want to receive data in a steam-like interface to handle someone sending me an insanely large packet (which WebRTC supports btw: you can run out of RAM on a single message), the sender shouldn't be the one to specify "no: you MUST receive this as a single giant ArrayBuffer, as I didn't mark this as Blob". But like, if you read the issue I linked there, the people working on this are actively trying to encode these kinds of type preservation into the design. In either that issue or a linked one, they discuss that, if they go with a WebTransport-based protocol, maybe they will need to as the spec authors (and not the end developer) define a framing solution to get this feature back. And so the problem then is that the kind of feedback I have is, inherently, "non-constructive": to me, the problem is that people are being "constructive". And so I am showing up saying "no this thing you want shouldn't happen: you don't need it and you should leave it up to the end-to-end principle for people to build this on top". The people building this have some kind of use case in mind where they have become excited to build a kind of high-level RPC that they clearly feel requires a serialization format so they can transfer high-level objects across the wire, but I feel that should inherently be out of scope for this kind of specification. And so "the thing you want isn't what anyone should build" always comes off as "deconstructive", as in some very real sense it must be. I thereby find that people like me just sit around grumbling as we find the entire concept of a web browser muddied up with a billion similar-yet-incompatible ideas all sort of trying to be general purpose and yet each one designed by people with a single use case in mind, and then, often, entirely abandoned later without any attempt to either evolve or normalize it (as is the case with WebRTC, which people seem to have simply given up on, even as it was just starting to get good).
In Local Peer-to-Peer API Draft Community Group Report
Why does this contain both data channels and WebTransport? Isn't the latter just more data channels? edit: OK, I found this issue. https://github.com/WICG/local-peer-to-peer/issues/29 Ugh... this is just so poorly thought through. We keep ending up with overly complex protocols that have too many states and too many options and too many control messages to accomplish what a more simple API could provide, and so to implement all of this we keep needing too much code and too many special cases and too many round trips to establish anything.
In Local Peer-to-Peer API Draft Community Group Report

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.