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

Download history 4554/week @ 2024-05-01 4604/week @ 2024-05-08 4094/week @ 2024-05-15 4368/week @ 2024-05-22 4291/week @ 2024-05-29 4466/week @ 2024-06-05 3744/week @ 2024-06-12 4064/week @ 2024-06-19 4671/week @ 2024-06-26 2552/week @ 2024-07-03 4054/week @ 2024-07-10 3899/week @ 2024-07-17 4011/week @ 2024-07-24 4000/week @ 2024-07-31 5012/week @ 2024-08-07 3646/week @ 2024-08-14

17,278 每月下载量
用于 少于 63 crates

MIT 协议

230KB
4.5K SLoC

Rust-WebSocket 构建状态 docs.rs

注意:此项目的维护进度缓慢。您可能希望使用 tungstenitetokio-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