Name | rws-client JSON |
Version |
0.1.1
JSON |
| download |
home_page | None |
Summary | WebSocket client with Rust backend |
upload_time | 2025-07-16 08:50:06 |
maintainer | None |
docs_url | None |
author | Your Name |
requires_python | <4.0,>=3.11 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# RWS Client (Rust WebSocket Client)
一个高性能的 WebSocket 客户端库,使用 Rust 实现核心功能,通过 PyO3 提供 Python 接口。
相较于websocket-client的python开源库,性能提升了500%以上,能够支持大批量的ws推送,不会对CPU造成特别大的负载压力。
## 特性
- 高性能:核心使用 Rust 实现
- 异步支持:完全支持 Python asyncio
- 多连接:支持同时管理多个 WebSocket 连接
- 事件驱动:支持 on_message、on_open、on_close 回调
## 安装
### 前置要求
如果只是作为python包使用rws client的话,那么不需要安装rust环境,直接走从pypi安装逻辑即可
1. Python 3.11 或更高版本
2. Rust 工具链
```bash
# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 重新加载环境变量
source "$HOME/.cargo/env"
# 验证安装
cargo --version
rustc --version
```
### 从 PyPI 安装
```bash
pip install rws-client
# 或者使用 poetry
poetry add rws-client
```
### 故障排除
如果遇到 "Cargo metadata failed" 错误,请检查:
1. Rust 是否正确安装:
```bash
cargo --version
```
2. 环境变量是否正确设置:
```bash
echo $PATH | grep cargo
```
3. 如果没有找到 cargo,手动添加到 PATH:
```bash
export PATH="$HOME/.cargo/bin:$PATH"
```
4. 确保系统有必要的编译工具:
Ubuntu/Debian:
```bash
sudo apt-get update
sudo apt-get install build-essential pkg-config libssl-dev
```
CentOS/RHEL:
```bash
sudo yum groupinstall "Development Tools"
sudo yum install openssl-devel
```
## 使用示例
...(其余内容保持不变)
Raw data
{
"_id": null,
"home_page": null,
"name": "rws-client",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": null,
"author": "Your Name",
"author_email": "your.email@example.com",
"download_url": "https://files.pythonhosted.org/packages/7c/90/ef1ecb51fe0aaf8454d0d2fb8d91a72b8f4f82da8da6b9153f434ae7980b/rws_client-0.1.1.tar.gz",
"platform": null,
"description": "# RWS Client (Rust WebSocket Client)\n\n\u4e00\u4e2a\u9ad8\u6027\u80fd\u7684 WebSocket \u5ba2\u6237\u7aef\u5e93\uff0c\u4f7f\u7528 Rust \u5b9e\u73b0\u6838\u5fc3\u529f\u80fd\uff0c\u901a\u8fc7 PyO3 \u63d0\u4f9b Python \u63a5\u53e3\u3002\n\u76f8\u8f83\u4e8ewebsocket-client\u7684python\u5f00\u6e90\u5e93\uff0c\u6027\u80fd\u63d0\u5347\u4e86500%\u4ee5\u4e0a\uff0c\u80fd\u591f\u652f\u6301\u5927\u6279\u91cf\u7684ws\u63a8\u9001\uff0c\u4e0d\u4f1a\u5bf9CPU\u9020\u6210\u7279\u522b\u5927\u7684\u8d1f\u8f7d\u538b\u529b\u3002\n\n## \u7279\u6027\n\n- \u9ad8\u6027\u80fd\uff1a\u6838\u5fc3\u4f7f\u7528 Rust \u5b9e\u73b0\n- \u5f02\u6b65\u652f\u6301\uff1a\u5b8c\u5168\u652f\u6301 Python asyncio\n- \u591a\u8fde\u63a5\uff1a\u652f\u6301\u540c\u65f6\u7ba1\u7406\u591a\u4e2a WebSocket \u8fde\u63a5\n- \u4e8b\u4ef6\u9a71\u52a8\uff1a\u652f\u6301 on_message\u3001on_open\u3001on_close \u56de\u8c03\n\n## \u5b89\u88c5\n\n### \u524d\u7f6e\u8981\u6c42\n\n\u5982\u679c\u53ea\u662f\u4f5c\u4e3apython\u5305\u4f7f\u7528rws client\u7684\u8bdd\uff0c\u90a3\u4e48\u4e0d\u9700\u8981\u5b89\u88c5rust\u73af\u5883\uff0c\u76f4\u63a5\u8d70\u4ecepypi\u5b89\u88c5\u903b\u8f91\u5373\u53ef\n\n1. Python 3.11 \u6216\u66f4\u9ad8\u7248\u672c\n2. Rust \u5de5\u5177\u94fe\n ```bash\n # \u5b89\u88c5 Rust\n curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n \n # \u91cd\u65b0\u52a0\u8f7d\u73af\u5883\u53d8\u91cf\n source \"$HOME/.cargo/env\"\n \n # \u9a8c\u8bc1\u5b89\u88c5\n cargo --version\n rustc --version\n ```\n\n### \u4ece PyPI \u5b89\u88c5\n\n```bash\npip install rws-client\n# \u6216\u8005\u4f7f\u7528 poetry\npoetry add rws-client\n```\n\n### \u6545\u969c\u6392\u9664\n\n\u5982\u679c\u9047\u5230 \"Cargo metadata failed\" \u9519\u8bef\uff0c\u8bf7\u68c0\u67e5\uff1a\n\n1. Rust \u662f\u5426\u6b63\u786e\u5b89\u88c5\uff1a\n ```bash\n cargo --version\n ```\n\n2. \u73af\u5883\u53d8\u91cf\u662f\u5426\u6b63\u786e\u8bbe\u7f6e\uff1a\n ```bash\n echo $PATH | grep cargo\n ```\n\n3. \u5982\u679c\u6ca1\u6709\u627e\u5230 cargo\uff0c\u624b\u52a8\u6dfb\u52a0\u5230 PATH\uff1a\n ```bash\n export PATH=\"$HOME/.cargo/bin:$PATH\"\n ```\n\n4. \u786e\u4fdd\u7cfb\u7edf\u6709\u5fc5\u8981\u7684\u7f16\u8bd1\u5de5\u5177\uff1a\n \n Ubuntu/Debian:\n ```bash\n sudo apt-get update\n sudo apt-get install build-essential pkg-config libssl-dev\n ```\n \n CentOS/RHEL:\n ```bash\n sudo yum groupinstall \"Development Tools\"\n sudo yum install openssl-devel\n ```\n\n## \u4f7f\u7528\u793a\u4f8b\n\n...\uff08\u5176\u4f59\u5185\u5bb9\u4fdd\u6301\u4e0d\u53d8\uff09 ",
"bugtrack_url": null,
"license": null,
"summary": "WebSocket client with Rust backend",
"version": "0.1.1",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ac2d425e12b4d193f98e25c06c5c06a64d1705b465aca3ded94ab75013b7e367",
"md5": "36e86b82b4d4c55d2d897b83d3754236",
"sha256": "03a85fa64671b2a80eb08c43a06ef33d0bf048cd97bfb17d4d4ba5fdb5535eac"
},
"downloads": -1,
"filename": "rws_client-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "36e86b82b4d4c55d2d897b83d3754236",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.11",
"size": 2967018,
"upload_time": "2025-07-16T08:50:04",
"upload_time_iso_8601": "2025-07-16T08:50:04.614969Z",
"url": "https://files.pythonhosted.org/packages/ac/2d/425e12b4d193f98e25c06c5c06a64d1705b465aca3ded94ab75013b7e367/rws_client-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c90ef1ecb51fe0aaf8454d0d2fb8d91a72b8f4f82da8da6b9153f434ae7980b",
"md5": "aa9ea01f4b33f3b1c6481ca586fda8ef",
"sha256": "152621d240297122b84f0c6f3aeb8259801d05c6b7425edc4b29ea70a4bcef5a"
},
"downloads": -1,
"filename": "rws_client-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "aa9ea01f4b33f3b1c6481ca586fda8ef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 24957,
"upload_time": "2025-07-16T08:50:06",
"upload_time_iso_8601": "2025-07-16T08:50:06.109369Z",
"url": "https://files.pythonhosted.org/packages/7c/90/ef1ecb51fe0aaf8454d0d2fb8d91a72b8f4f82da8da6b9153f434ae7980b/rws_client-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-16 08:50:06",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "rws-client"
}