44 个版本
0.2.27 | 2022 年 7 月 6 日 |
---|---|
0.2.25 | 2022 年 4 月 26 日 |
0.2.18 | 2022 年 3 月 23 日 |
0.1.12 | 2021 年 9 月 23 日 |
0.1.1 | 2021 年 6 月 30 日 |
#141 in #路由
35KB
821 行
Melnet 作为 Themelio 的点对点网络层,基于随机拓扑和八卦,将节点分为服务器和客户端。服务器具有公开可达的地址,而客户端没有。它基于简单的 stdcode 请求-响应协议,唯一推送消息的方式是向服务器发送请求。没有多路复用——整个系统的工作方式就像 HTTP/1.1。现在的 TCP 连接相当便宜。
这也意味着客户端永远不会接收到通知,必须轮询服务器。
使用 melnet
的一般方法如下
- 创建一个
NetState
。它包含路由表、RPC 动词处理程序和其他“全局”数据。 - 如果作为服务器运行,则使用
NetState::register_verb
注册 RPC 动词,并在后台运行NetState::run_server
。 - 使用
Client
,例如由g_client()
返回的全局客户端,向其他服务器进行 RPC 调用。服务器仅通过一个std::net::SocketAddr
来标识。
依赖关系
~14–48MB
~724K SLoC