quic|http2: implement webtransport capsule protocol support
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, nodejs
- Área
- backend, networking
Línea de trabajo
Empieza revisando el PR de Node.js QUIC referenciado y la implementación en main/lib/http2/node del paquete enlazado. Determina dónde podría encajar una implementación del protocolo Capsule y cómo debería ajustarse al subconjunto propuesto de QuicSession y QuicStream. Se considerará terminado cuando se haya acordado una ubicación, se hayan resuelto las cuestiones de licencia y haya soporte funcional para Capsule en Node.js.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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?
- Lenguaje dominante
- JavaScript
- Estrellas
- 122k
- Forks
- 37.4k
- Merge medio
- 4 d 3 h
- PR fusionados (30 d)
- 272
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nodejs/node
-
doc
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
build
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
feature request
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Todos los issues de nodejs/node
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
avniproject/avni-client#2135 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
babalae/bettergi-scripts-list#3674 ·
-
A-Release-Notes C-Editing D-Modest S-Ready-For-Implementation
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
bevyengine/bevy-website#2595 ·
-
ecosystem wording
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
matrix-org/matrix.org#3649 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
vadimdemedes/ink#1029 ·