26 个版本
0.0.26 | 2024年2月21日 |
---|---|
0.0.25 | 2023年11月29日 |
0.0.17 | 2023年10月27日 |
0.0.9 | 2023年9月27日 |
51 在 WebSocket 中排名
每月 43 次下载
45KB
1K SLoC
Rust 异步 HTTP 和 WebSocket 服务器
该服务器基于 uWebSockets
构建,利用 tokio
提供异步运行时支持。适用于需要高性能非阻塞 I/O 操作的 Rust 应用程序。如果您的项目不需要异步编程,您可能考虑使用同步 Rust 服务器。如果您不需要 tokio,您可能对 libuwebsockets_rs 感兴趣——这是一个基于 uWebSockets
的零依赖 Rust 库,与原始包具有相同的 API。
使用方法
要将 uWebSockets
集成到您的 Rust 应用程序中,您必须确保将几个本地库正确链接到您的二进制文件。这些库包括 libz
、libuv
、libssl
、libcrypto
以及您系统的适当 C++ 标准库。配置 build.rs
您的 build.rs
脚本应像这样链接这些库
println!("cargo:rustc-link-lib=z");
println!("cargo:rustc-link-lib=uv");
println!("cargo:rustc-link-lib=ssl");
println!("cargo:rustc-link-lib=crypto");
// Conditional linking for C++ standard library based on the target OS
#[cfg(target_os = "macos")]
println!("cargo:rustc-link-lib=c++"); // Use libc++ for macOS
#[cfg(not(target_os = "macos"))]
println!("cargo:rustc-link-lib=stdc++"); // Use libstdc++ for other systems
设置您的环境
macOS 用户
在 macOS 上,您可能需要指定链接器查找 libuv
和 libc
的包含路径和库路径。您可以通过在 shell 中设置环境变量来完成此操作
export LIBRARY_PATH="/opt/homebrew/lib:$LIBRARY_PATH"
export C_INCLUDE_PATH="/opt/homebrew/include:$C_INCLUDE_PATH"
export CPLUS_INCLUDE_PATH="/opt/homebrew/include:$CPLUS_INCLUDE_PATH"
如果 libuv
在您系统中的其他位置安装,请将 /opt/homebrew/lib
和 /opt/homebrew/include
替换为实际路径。
Linux 用户
在 Linux 上,请确保通过您的发行版的包管理器安装了 libuv
、libssl
和 libcrypto
,并且系统上可用的 libstdc
库。
Windows 用户
遗憾的是,此库目前不支持 Windows,但请不要犹豫,在 libuwebsockets-sys crate build 脚本 中为 Windows 支持提交 PR
故障排除
如果在编译过程中遇到错误,例如找不到头文件(例如,未找到 uv.h)或链接问题(例如,找不到 -luv 的库),请按照以下步骤操作:
- 请确认所有必需的库都已安装,并且可以在系统库和包含路径中访问。
- 在运行
cargo build
之前,请确保环境变量已正确设置。 - 使用
cargo clean
删除任何过时的构建输出,然后使用cargo build
重新编译项目。 - 为了获得有助于诊断构建问题的详细输出,请运行
cargo build -vv
。
贡献
如果您遇到任何问题或想提出改进建议,请在存储库中打开一个问题或拉取请求。您的贡献将有助于使此项目更加健壮,并使 Rust 社区更容易使用。
依赖项
~3–11MB
~113K SLoC