#udp-client #reverse-proxy #tcp-udp #udp-server #proxy-server #client-server #data-stream

bin+lib mproxy-client

MPROXY: UDP 客户端。通过 UDP 将本地数据流传输到日志服务器

9 个版本

0.1.8 2023 年 9 月 26 日
0.1.7 2023 年 6 月 1 日
0.1.6 2023 年 3 月 31 日
0.1.3 2022 年 12 月 20 日

网络编程 中排名第 1183


4 crates 中使用

MIT 许可证

14KB
180

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–25MB
~327K SLoC