3 unstable releases

0.10.0 Apr 6, 2024
0.2.1 Apr 30, 2024
0.2.0 Apr 26, 2024
0.1.0 Apr 6, 2024

#1013 in Network programming

Download history 271/week @ 2024-04-01 104/week @ 2024-04-08 26/week @ 2024-04-15 145/week @ 2024-04-22

546 downloads per month
Used in 7 crates (5 directly)

MIT license

110KB
2K SLoC

Documentation Crates.io License: MIT

web-transport-quinn

Example

See the example server and client.

QUIC requires TLS, which makes the initial setup a bit more involved.

  • Generate a certificate: ./cert/generate
  • Run the Rust server: cargo run --example echo-server -- --tls-cert cert/localhost.crt --tls-key cert/localhost.key
  • Run a Web client: cd web; npm install; npx parcel serve client.html --open

If you get a certificate error with the web client, try deleting .parcel-cache.

The Rust client example seems to be broken. It would be amazing if somebody could fix it: cargo run --example echo-client -- --tls-cert cert/localhost.crt

Limitations

This library doesn't support pooling HTTP/3 or multiple WebTransport sessions. It's means to be analogous to the QUIC API.

  • If you want to support HTTP/3 on the same host/port, you should use another crate (ex. h3-webtransport).
  • If you want to support multiple WebTransport sessions over the same QUIC connection... you should just dial a new QUIC connection instead.

Dependencies

~7–17MB
~229K SLoC