New WebTransport sink/bin interface
https://web.dev/i18n/en/webtransport/ https://www.w3.org/TR/webtransport/ https://web.dev/webcodecs/ https://www.w3.org/TR/webaudio/ https://web.dev/media-mse-basics/
Currently, Web application developers have two APIs for bidirectional communications with a remote server: WebSockets and RTCDataChannel. WebSockets are TCP-based, thus having all of the drawbacks of TCP that make it a poor fit for latency sensitive applications (head of line blocking, lack of support for unreliable data transport). RTCDataChannel is based on SCTP, which does not have these drawbacks; however, it is designed to be used in a peer-to-peer context, which caused its use in client-server settings to be fairly low. WebTransport provides a client-server API that supports bidirectional transfer of both unreliable and reliable data, using UDP-like datagrams and cancellable streams.
https://chromestatus.com/feature/4854144902889472
WebTransport is a promising new web protocol based on HTTP3. This reduces the complexity of WebRTC in arbitrary client-server streams and is using QUIC Transport to achieve UDP connections within web browsers. Chromium-based browsers >= 105 are currently the representative supporting browsers.
This combined with WebCodecs and WebAudio will make it a feasible alternative for both WebRTC and WebSockets, filling a void between the two main TCP/UDP transport methods for the web browser.
Implementation on GStreamer should also be much easier than that of webrtcbin, as the complexity of ICE, DTLS, and SCTP is removed and only the knowledge of HTTP3 would be required.
If a developer should have the time and resources, it would be a very useful plugin and with high feasibility when implemented in Rust, although also possible with C.
WebTransport would also solve the WASM UDP networking problem within web browsers.