6 releases
Uses new Rust 2024
| 0.1.5 | Jan 20, 2026 |
|---|---|
| 0.1.4 | Jan 19, 2026 |
#40 in #nat
140KB
3.5K
SLoC
zz-rust-mod-p2p
zz rust library for peer to peer connections and interactions.
zz rust 点对点 连接与交互库。
目标:
- 支持同一ip,端口下,同时可以响应udp, tcp, http, ws的请求
- 同时支持以上所有协议下的点对点连接
- 支持webrtc下的点对点连接方式
- 开发透明的点对点协议,只需要按点对点协议编写代码,就可以提供四种协议下的点对点服务。
- 提供点对点的应用平台基础。包括(消息,音频,视频)。
技术设定
- 将同一个节点的所有网络连接分为服务端节点与客户端节点,统一管理
- 将不同的服务器端单独列出来进行管理,也就是一个节点要同时管理 udp, tcp, http, web socket等至少四种服务器,让这个服务器,即可以服务于纯tcp的连接,也可以是http的连接,以及web socket的连接
- session共享,对于http连接来说,分享用户登录信息是一件比较麻烦的事情,但是在free web movement的p2p项目里,他通过Address里的公钥与地址系统可以实现session的共享
- 为不同的协议设定应用层面的统一接口。
架构图景
┌────────────────┐
│ CLI/UI │ ← 人类操作
└────┬───────────┘
│
┌────▼──────────────────────┐
│ Node │ ← 节点生命周期 & 协调者
└────┬──────────────────────┘
│
┌────▼──────────┐ ┌────────▼────────┐
│ TCPHandler │ │ UDPHandler │ ← 网络 IO
└────┬──────────┘ └────────┬────────┘
│ │
┌────▼─────────────────────────▼─────┐
│ Context │ ← 全局共享状态
└────┬─────────────────────────┬─────┘
│ │
┌────▼──────────────┐ ┌──────▼───────────┐
│ ConnectedClients │ │ ConnectedServers │
└────┬──────────────┘ └──────┬───────────┘
│ │
┌────▼───────────────────────────────────┐
│ Protocol Layer (Frame / Command) │
└────┬───────────────────────────────────┘
│
┌────▼─────────────────────────┐
│ MessageCommand/EventCommand │ ← 业务层(文本消息)
└──────────────────────────────┘
Dependencies
~25–43MB
~528K SLoC