libdatachannel icon indicating copy to clipboard operation
libdatachannel copied to clipboard

WebTransport

Open graingert opened this issue 4 years ago • 4 comments

There's a new WebRTC adjacent protocol in the works: https://tools.ietf.org/id/draft-vvv-webtransport-http3-02.html

WebTransport is a protocol framework that enables clients constrained by the Web security model to communicate with a remote server using a secure multiplexed transport. This document describes Http3Transport, a WebTransport protocol that is based on HTTP/3 [HTTP3] and provides support for unidirectional streams, bidirectional streams and datagrams, all multiplexed within the same HTTP/3 connection.

@paullouisageneau is this something within the remit of libdatachannel?

graingert avatar Jul 01 '20 15:07 graingert

Support for WebTransport would be cool, however it requires an HTTP/3 stack.

I don't think a lot could be shared with the current implementation as it would require to introduce a library for QUIC. On the bright side, introducing QUIC would open the door for QUIC-based WebRTC data channels introduced by Google last year: https://github.com/w3c/webrtc-quic

paullouisageneau avatar Jul 01 '20 15:07 paullouisageneau

@paullouisageneau

How complex is it to create a HTTP/3 stack by a one man?

jeffRTC avatar Jun 11 '21 13:06 jeffRTC

@jeffRTC It would take some work to write the stack from scratch. A bunch of implementations already exist, like nghttp3 or lsquic.

Additionally, p2p-webtransport, formerly webrtc-quic, the P2P version of webtransport, does not seem to be a priority and the draft is far from finished.

paullouisageneau avatar Jun 11 '21 17:06 paullouisageneau

WebTransport is now supported by 76%+ of global devices and WebKit proclaimed their support of WebTransport so we might get Safari support this summer, which would make it supported across all major browsers 🥳 The HTTP/3 stack has also been maturing significantly so it's getting easier and easier to use WebTransport as part of a backend setup.

It'd be great to add WebTransport to libdatachannel as there's already language bindings such as node-datachannel. In this way, adding WebTransport here would quickly propagate to the rest of the ecosystem and might help propel WebTransport forward as a whole.

@paullouisageneau, I know it's a big ask, but would you consider prioritizing adding WebTransport?

bfelbo avatar Feb 13 '24 04:02 bfelbo