13个版本 (4个破坏性更新)
0.5.0 | 2020年8月8日 |
---|---|
0.4.1 | 2020年7月26日 |
0.3.1 | 2020年7月26日 |
0.2.3 | 2020年7月26日 |
0.1.4 | 2020年7月22日 |
#1555 在 异步
42KB
908 行
Ws-Gonzale
Ws Gonzale的目标是成为一个异步ws服务器,仅此而已。
目前它只是最简单的表示形式,并且还不完全兼容
我还想包括一些关于“存在”和共享数据的优秀示例。
我不想仅仅复制另一个框架。
示例/生命周期的基本概述
+--------+ +--------------+ +------+
| Client |<----->| WsConnection |<----| MPMC |<-------<-------.
+--------+ +--------------+ +------+ |
\ |
+--------+ +--------------+ \ +------+ +---+---------------+
| Client |<----->| WsConnection |--*--->----| MPMC |-->->-| Server lifecycle |
+--------+ +--------------+ +------+ +--------+----------+
\ /
+--------+ +-----------+ \ +------+ /
| Client |------>| handshake | '---<-<--| MPMC |<--*
+--------+ |___________| +------+
查看示例
如果您想运行一个简单的WS服务器
cargo run --example life-cycle
基准测试
Rust基准测试
cargo run bench
使用artillery
首先启动测试服务器
cargo run --example life-cycle
然后在另一个窗口中运行
artillery run benches/artillery.yml
常见问题解答
为什么不使用X库?
这只是为了玩玩,这样我才能适应来自NodeJS背景的多线程环境。
那里有很多优秀的Rust开发者;但有时略微不那么高级的方法可以帮助人们学习一些基本概念。
这个项目将走向何方?
查看问题
这个项目的名字从何而来?
Speedy gonzales
WS协议
这是对WS协议最懒散的实现。目前它只支持握手和发送基本消息。https://tools.ietf.org/html/rfc6455
我可以贡献力量吗?
随时可以
依赖关系
~6–19MB
~218K SLoC