QUIC protocol support in tokio


#1

Hello, i was thinking it would be great if tokio can provide QUIC(https://www.chromium.org/quic) protocol support inbuilt with tcp and udp.

Any plas for that ?


#2

I’m working on a QUIC implementation that will eventually include tokio support. Tokio ships with UDP and TCP support because those are built into most kernels; for QUIC, a separate crate makes sense.


#3

I’m also working on a QUIC implementation, which I will talk about in my RustFest presentation. This will be based on tokio from the start (the server part is already built around tokio and futures), and should rapidly improve over the next few weeks. I also want to talk to the hyper and h2 folks to see if we can cooperate on integrating the entire HTTP stack.


#4

I’ve completed the tokio front-end to quicr and published it to crates.io. There’s probably plenty of bugs, but it’s successfully performing all basic functions against every other similarly complete QUIC implementation I can find as a client, and against itself as both client and server. The API is reasonably filled out and ready for experimental use; you can drop in a quicr::Stream anywhere you’re currently using a tokio TcpStream.

Unfortunately, docs.rs is failing to build the docs due to the bleeding-edge OpenSSL dependency, but hopefully we’ll be able to replace that with rustls before too long.