6个版本

0.1.5 2024年5月6日
0.1.4 2024年4月23日

#1613 in 网络编程

Download history 206/week @ 2024-04-23 108/week @ 2024-04-30 48/week @ 2024-05-07 1/week @ 2024-05-14 10/week @ 2024-05-21 1/week @ 2024-06-11

每月263次下载

自定义许可协议

44KB
876

mptcp-rs

创建多路径TCP (MPTCP)套接字的辅助crate。

特性

该crate目前支持

  • std::net::TcpStreamstd::net::TcpListener
  • 支持Linux
  • 支持tokio
  • 支持async-std
  • 支持MacOS(仅TcpStream)

用法

创建MPTCP流

use mptcp::MptcpStreamExt;

let stream = TcpStream::connect_mptcp("www.google.com:443").unwrap();

connect_mptcp方法处理在系统上不可用MPTCP时回退到TCP套接字。如果需要使用MPTCP,请使用connect_mptcp_force

创建MPTCP监听器

use mptcp::MptcpListenerExt;

let listener = TcpListener::bind_mptcp("localhost:8080").unwrap();

类似于Stream。在系统上不可用MPTCP时,bind_mptcp方法处理回退到TCP套接字。如果需要使用MPTCP,请使用bind_mptcp_force

使用into_socket()检索TcpStreamTcpListener以在现有库中重用。MPTCP套接字提供与TCP套接字相同的API。

您还可以使用以下方法检查是否使用了底层MPTCP套接字

use mptcp::{MptcpExt, MptcpStatus};

let stream : TcpStream = ...;
println!("stream uses mptcp: {}", matches!(stream.mptcp_status(), MptcpStatus::Mptcp { .. }));

可以通过功能启用Tokio支持:tokio。用法与std lib类似,通过导入mptcp::tokio::MptcpStreamExt

许可协议

本项目采用MIT许可协议

依赖关系

~2–34MB
~486K SLoC