mptcp-rs
A helper crate to create Multipath TCP (MPTCP) sockets.
Features
The crate currently supports:
-
std::net::TcpStreamandstd::net::TcpListener - support Linux
- support tokio
- support async-std
- support MacOS (TcpStream only)
Usage
To create an MPTCP stream:
use MptcpStreamExt;
let stream = connect_mptcp.unwrap;
The connect_mptcp method handles falling back to a TCP socket in case MPTCP
is not available on the system. Use connect_mptcp_force if you require to
use MPTCP.
To create an MPTCP listener:
use MptcpListenerExt;
let listener = bind_mptcp.unwrap;
Similarly to the Stream. The bind_mptcp method handles falling back to a
TCP socket in case MPTCP is not available on the system. Use bind_mptcp_force
if you require to use MPTCP.
Use the into_socket() to retrieve to retrieve a TcpStream or TcpListener to
be reused in existing libraries. MPTCP sockets provides the same API as TCP
sockets.
You can also check whether a TcpStream uses an underlying MPTCP socket using:
use ;
let stream : TcpStream = ...;
println!;
Tokio support can be enabled via feature: tokio. Usage is similar for std lib
by importing mptcp::tokio::MptcpStreamExt.
License
This project is licensed under the MIT License.