4 releases (2 breaking)

0.10.0 Apr 6, 2024
0.3.0 May 17, 2024
0.2.1 Apr 30, 2024
0.2.0 Apr 26, 2024
0.1.0 Apr 6, 2024

#1000 in Network programming

Download history 323/week @ 2024-04-03 60/week @ 2024-04-10 38/week @ 2024-04-17 195/week @ 2024-04-24 149/week @ 2024-05-01 28/week @ 2024-05-08 191/week @ 2024-05-15 109/week @ 2024-05-22 65/week @ 2024-05-29

404 downloads per month
Used in 7 crates (2 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

~14–24MB
~460K SLoC