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 日 |
在 网络编程 中排名第 1473
60KB
843 行
MPROXY:多播网络调度器和代理
在网络中传输数据。
关于
此存储库包括四个包:正向代理、反向代理、UDP 客户端和 UDP 服务器。代理允许在 TCP 和 UDP 之间进行转换,因此可以将这些块组合在一起以实现与现有网络的完全互操作性。主要功能是与 UDP 多播 的兼容性,用于中间路由和反向代理,实现简单的一对多或多对多组通信,并实现可扩展的反向代理。包可以从命令行运行或作为库包含。
- 简单易用的完整网络堆栈
- 同时发送、代理、反向代理和接收来自多个端点
- 快速
- 可在 5 分钟内部署
- 500+ Mbps 读取/传输/写入速度(UDP)
- 无状态多线程并发
- 最小化
- 无需配置、日志或缓存
- 极小的内存占用,编译后的二进制文件大小约为 350KB
- 少于 1500 行代码
- 利用 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–25MB
~329K SLoC