8 个版本
0.1.8 | 2023 年 9 月 26 日 |
---|---|
0.1.7 | 2023 年 6 月 1 日 |
0.1.6 | 2023 年 3 月 31 日 |
0.1.3 | 2022 年 12 月 20 日 |
#1557 在 网络编程
44KB
636 行
MPROXY:多播网络调度器和代理
在网络中传输数据。
关于
此仓库包含四个包:正向代理、反向代理、UDP 客户端和 UDP 服务器。代理允许 TCP 和 UDP 之间的转换,因此可以将这些块组合在一起以实现与现有网络的完全互操作性。主要功能是与 UDP 多播 的兼容性,用于中间路由和反向代理,使得在复杂的一对多或多对多数据流中实现简单的组通信成为可能,并导致可扩展的反向代理。这些包可以从命令行运行或作为库包含。
- 简单易用的完整网络堆栈
- 同时发送、代理、反向代理和接收多个端点
- 快速
- 可以在 5 分钟内部署
- 500+ Mbps 读写速度(UDP)
- 无状态多线程并发
- 最小化
- 无配置、日志或缓存
- 微小的内存占用,编译的二进制文件大小约 350KB
- 小于 1500 LOC
- 利用 UDP 的优势
- 简单的流聚合
- 高效的代理和反向代理
- UDP 多播用于可扩展的反向代理
快速入门
使用简单的客户端/服务器网络开始。使用 cargo 安装命令行工具,并在端口 9920 上启动 UDP 监听服务器。
cargo install mproxy-client mproxy-server
mproxy-server --listen-addr "localhost:9920" --path "streamoutput.log" --tee
然后从客户端向服务器发送一些字节。路径选项 "-" 告诉客户端从 stdin 读取输入。也可以使用文件路径、描述符或句柄。
mproxy-client --path "-" --server-addr "localhost:9920"
> Hello world!
现在你应该能在 streamoutput.log
中看到你的消息出现(如果使用了 --tee
,也会出现在 stdout 中)
兼容性
- Windows/Linux/Mac
- IPv4/IPv6
- UDP
- TCP/TLS
- 通过正向和反向代理
- 通过
rustls
提供部分客户端 TLS 支持(需要在mproxy-forward
中启用tls
功能)
文档
请参阅文档以获取安装和操作说明
依赖项
~0.1–32MB
~432K SLoC