nodejs / nodejs/node

quic|http2: implement webtransport capsule protocol support

Đang mở
#65,809 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
JavaScript
Star
122k
Fork
37.3k
Merge trung bình
4 ngày 2 giờ
Pull request đã merge (30 ngày)
283

Mô tả

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?

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng việc xem xét PR Node.js QUIC được tham chiếu và phần triển khai trong main/lib/http2/node của package được liên kết. Xác định nơi một triển khai giao thức Capsule có thể phù hợp và cách triển khai đó nên tương thích với tập hợp con QuicSession và QuicStream được đề xuất. Công việc được xem là hoàn tất khi đã thống nhất vị trí, giải quyết xong các vấn đề về giấy phép và có hỗ trợ Capsule hoạt động trong Node.js.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript, nodejs
Lĩnh vực
backend, networking
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.