Expand description
Async QUIC Listener/Socket for tokio using quiche.
§Examples
§Client
First create a QuicSocket.
ⓘ
let mut connection = QuicSocket::bind("127.0.0.1:0")
.await?
.connect(Some("localhost"), "127.0.0.1:4433")
.await?;Then you can start opening new QuicStreams or receive incoming ones from the server.
ⓘ
let mut stream = connection.bidi(1).await?;ⓘ
let mut stream = connection.incoming().await?;These implement the tokio AsyncRead and AsyncWrite traits.
§Server
Again create a QuicListener.
ⓘ
let mut listener = QuicListener::bind("127.0.0.1:4433").await?;Then you can use a while loop to accept incoming connection and either handle them directly on the thread or move them to a new one.
ⓘ
while let Ok(mut connection) = listener.accept().await {
tokio::spawn(async move {
let mut stream = connection.incoming().await?;
...
stream.shutdown().await?;
});
}Modules§
Structs§
- Quic
Listener QuicListeneris used to bind to a specified address/port.- Quic
Socket QuicSocketopens a connection from a specified address/port to a server.