23 unstable releases
new 0.12.0 | Jan 14, 2025 |
---|---|
0.11.1 | Aug 10, 2024 |
0.10.3 | May 23, 2024 |
0.10.2 | Dec 9, 2023 |
0.2.0 | Mar 31, 2021 |
#1930 in Network programming
196,595 downloads per month
Used in 247 crates
(6 directly)
435KB
8K
SLoC
Implementation of the QUIC transport protocol for libp2p.
Usage
Example:
#
#
use libp2p_core::{transport::ListenerId, Multiaddr, Transport};
use libp2p_quic as quic;
let keypair = libp2p_identity::Keypair::generate_ed25519();
let quic_config = quic::Config::new(&keypair);
let mut quic_transport = quic::async_std::Transport::new(quic_config);
let addr = "/ip4/127.0.0.1/udp/12345/quic-v1"
.parse()
.expect("address should be valid");
quic_transport
.listen_on(ListenerId::next(), addr)
.expect("listen error.");
#
The GenTransport
struct implements the libp2p_core::Transport
. See the
documentation of libp2p_core
and of libp2p in general to learn how to use the
Transport
trait.
Note that QUIC provides transport, security, and multiplexing in a single protocol. Therefore, QUIC connections do not need to be upgraded. You will get a compile-time error if you try. Instead, you must pass all needed configuration into the constructor.
Dependencies
~21–55MB
~1M SLoC