#udp-socket #reverse-proxy #sockets #multicast #udp-server #udp-client #networking

mproxy-socket_dispatch

MPROXY: Socket分发器。用于绑定单播和多播UDP套接字地址的平台无关API。

7个版本

0.1.6 2023年3月31日
0.1.5 2023年3月15日
0.1.3 2022年12月20日

#9#udp-client

Download history 37/week @ 2024-03-30 8/week @ 2024-04-06

165 每月下载量
2 crates 中使用

MIT 许可证

6KB
52

MPROXY: 多播网络分发器和代理

在网络中传输数据。

关于

该仓库包括四个包:正向代理、反向代理、UDP客户端和UDP服务器。代理允许TCP和UDP之间的转换,因此可以将这些块组合在一起以实现与现有网络的完全互操作性。
主要特性是与UDP多播兼容,用于中间路由和反向代理,使得在复杂的点对点或多对多数据流中实现简单的组通信变得简单,从而实现可扩展的反向代理。这些包可以通过命令行运行或作为库包含。

  • 简单的完整网络栈
    • 同时发送、代理、反向代理和接收多个端点
  • 快速
    • 可在5分钟内部署
    • 500+ Mbps读取/传输/写入速度(UDP)
  • 最小化
    • 无配置、日志或缓存
    • 内存占用小,编译的二进制文件大小约为350KB
    • 线程之间无共享资源
  • 利用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功能)
  • 部分透明路由

文档

请参阅文档以获取安装和操作说明

依赖关系

~255–470KB