quic|http2: implement webtransport capsule protocol support
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- javascript, nodejs
- Bereich
- backend, networking
Rechercherichtung
Beginne mit der Durchsicht des referenzierten Node.js QUIC PR und der Implementierung in main/lib/http2/node aus dem verlinkten Paket. Ermittle, wo eine Capsule-Protokollimplementierung integriert werden könnte und wie sie dem vorgeschlagenen QuicSession- und QuicStream-Subset entsprechen sollte. Erledigt ist dies, wenn ein vereinbarter Platz feststeht, Lizenzfragen geklärt sind und eine funktionierende Capsule-Unterstützung in Node.js vorhanden ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Beside the quic webtransport wire protocol, there is also the capsule protocol, initially developed for http/2, but know also mentioned in the spec drafts as alternative means of transport for http/3.
As browser support is limited (or not existing), I have also made a draft for webtransport over websocket:
https://datatracker.ietf.org/doc/draft-richter-webtransport-websocket/
that allows to polyfill on the UA side.
Both are implemented in my own package:
https://github.com/fails-components/webtransport/tree/master/main/lib/http2/node
and the polyfill over websocket is successfully tested for a while in my deployment.
I have asked upstream nghttp2, nghttp3, there is currently no plan to implement it.
My plan would to turn my low level code to match a subset of QuicSession, and QuicStream interfaces with regard to webtransport and stream/iter (compare PR for quic https://github.com/nodejs/node/pull/63827) and add it to node.js. (Though I do not know where to place it).
(One side note, I have translated some BSD style licensed code from quiche to js (just two files), I would assume, that this should be ok with node.js licenses or do I need to replace this portion ?).
(And if this becomes important, we can still port hot path to C)
@jasnell @pimterry does this sound like a plan?
- Vorherrschende Sprache
- JavaScript
- Sterne
- 122k
- Forks
- 37.4k
- Ø Merge
- 4 T. 3 Std.
- Gemergte PRs (30 T.)
- 273
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus nodejs/node
-
doc
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
build
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
-
feature request
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Ähnliche Issues
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
apache/cloudstack#14222 ·
-
Browser Waiting for: Product Owner
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
getsentry/sentry-javascript#24577 · 1 Kommentar ·
-
curation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
amponce/archive-movie-browser#186 ·
-
light
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
aemdemos/patients-stryker#253 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
clerk/javascript#9852 ·