79个版本
0.27.1 | 2024年3月31日 |
---|---|
0.27.0 | 2023年9月17日 |
0.26.5 | 2022年7月24日 |
0.26.4 | 2022年3月31日 |
0.4.0 | 2014年11月30日 |
#8 在 #rfc6455
17,278 每月下载量
用于 少于 63 crates
230KB
4.5K SLoC
Rust-WebSocket
注意:此项目的维护进度缓慢。您可能希望使用 tungstenite 或 tokio-tungstenite 代替。 |
---|
Rust-WebSocket是用Rust编写的WebSocket (RFC6455) 库。
请注意,这个特定的库基于过时的依赖项(Hyper 0.10、Tokio 0.1),因此不适合新项目。建议您使用其他WebSocket库。
Rust-WebSocket提供了一个处理WebSocket连接(客户端和服务器)的框架。该库目前处于实验状态,但提供了正常和安全WebSocket的功能,支持分片的消息级别API,数据帧级别的API,以及扩展和自定义行为的能力。
安装
要将来自 crates.io 的库版本添加到Cargo项目,请将以下内容添加到Cargo.toml的'dependencies'部分
websocket = "0.24.0"
要将库的Git仓库添加到Cargo项目,请将以下内容添加到您的Cargo.toml
[dependencies.websocket]
git = "https://github.com/websockets-rs/rust-websocket.git"
可选地,将 extern crate websocket;
添加到您的项目。
请注意,0.24.0
是支持一些非常古老的 Rust 版本的 rust-websocket
的最后一个版本(我不确定具体是哪个版本,可能是 1.28)。
用法
该库可以在 Rust nightly 版本上编译带有测试、bench 和一些额外功能。要启用夜间功能,使用 cargo --features nightly ...
。
请在此处查看库的最新版本文档 这里,以及位于 /examples
的示例,可以通过以下方式运行
cargo run --example server
并在单独的终端中
cargo run --example client
测试
可以使用 cargo test
运行测试,使用 cargo bench
运行基准测试。
包含了一些测试,以确保核心 WebSocket 功能按预期工作。这些测试还不是全面的,仍在开发中。
Autobahn TestSuite
Rust-WebSocket 使用 Autobahn TestSuite 来测试对 RFC6455 的符合性。如果您已安装 Autobahn TestSuite,可以使用以下命令自行运行这些测试
wstest -m fuzzingserver
cargo run --example autobahn-client
来测试客户端实现,
wstest -m fuzzingclient
cargo run --example autobahn-server
来测试服务器实现。规范文件可在 这里 获取。
这些测试的结果可在 这里 查看。
贡献
在您创建 PR 之前,请确保运行所有测试!
# install
rustup component add rustfmt-preview
rustup component add clippy-preview
# test
cargo +nightly fmt -- --check
cargo +nightly clippy --all-features -- -D clippy::all
cargo test --features nightly
cargo bench --features nightly
./scripts/build-all.sh
许可
MIT 许可证 (MIT)
版权所有 (c) 2014-2015 Cyderize
特此授予任何获得此软件及其相关文档副本(“软件”)的人,在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向获得软件的人提供软件,以便他们可以这样做,前提是以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不受任何保证,明示或暗示的,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生的,与软件或软件的使用或其他交易有关。
依赖关系
~5–15MB
~221K SLoC