Chromium-based browsers provide Isolated Web App capability, which allows WICG Direct Sockets API, in particular TCPServerSocket
and UDPSocket
(e.g., using QUIC). That capability allows using the browser itself as a server.
What I'm trying to do now is implement HTTP/3 in JavaScript and/or WASM, for full-duplex streaming over HTTP/3
How would I compile a Rust-based HTTP/3 implementation such as quiche to WASM - including TLS implementation - for the ability to handle HTTP/3 requests from the browser using WebTransport
?
From a Chromium IWA maintainer
There's nothing stopping you from implementing your own TLS client/server library on top of the Direct Sockets API. The API proposed here makes that easier by allowing you to validate certificates using the browser's certificate store instead of providing your own.
That issue is obsolete. There is nothing stopping you from implementing a WebTransport server other than building an implementation using JavaScript or WebAssembly.