quic|http2: implement webtransport capsule protocol support
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- Active
- Stack technique
- javascript, nodejs
- Domaine
- backend, networking
Piste de recherche
Commencez par examiner le PR Node.js QUIC référencé et l’implémentation dans main/lib/http2/node du package lié. Déterminez où une implémentation du protocole Capsule pourrait s’intégrer et comment elle devrait correspondre au sous-ensemble proposé de QuicSession et QuicStream. Le travail est terminé lorsqu’un emplacement a été convenu, que les questions de licence sont résolues et qu’une prise en charge fonctionnelle de Capsule existe dans Node.js.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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?
- Langage dominant
- JavaScript
- Étoiles
- 122k
- Forks
- 37.4k
- Merge moyen
- 4 j 3 h
- PR mergées (30 j)
- 279
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de nodejs/node
-
doc
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
build
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
-
feature request
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Toutes les issues de nodejs/node
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
Theme loads third-party resources on every page (jsdelivr web font, cdnjs Font Awesome) – GDPR Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
docToolchain/docToolchain#1705 ·
-
Timezone select lists one option per character; duplicate "Failed" reason; shared tracker popover id Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
nightscout/nocturne#1414 ·
-
bug v2
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
modelcontextprotocol/inspector#2458 · 1 commentaire ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
carbon-design-system/ibm-products#9907 ·