14 次重大发布
0.15.0 | 2024 年 4 月 16 日 |
---|---|
0.14.0 | 2024 年 1 月 19 日 |
0.13.0 | 2023 年 12 月 3 日 |
0.12.0 | 2023 年 11 月 22 日 |
0.0.0 |
|
#2 in #server-connection
每月 85 次下载
580KB
11K SLoC
Chorus 是一个 Rust 库,充当 Spacebar Chat 和 Discord 的 API 包装器。它旨在易于使用,并与 Discord 和 Spacebar Chat 兼容。
您可以建立任意数量的连接到任意数量的服务器,并且可以同时使用它们。
Chorus 之旅
Chorus 将以用户为中心的 Spacebar 库的所有必需功能结合在一个包中。库代表您处理各种方面,例如速率限制、身份验证以及维护与网关的 WebSocket 连接。这意味着您可以专注于构建应用程序,而无需担心底层实现细节。
要开始使用 Chorus,请将其导入到项目中,方法是在您的 Cargo.toml
文件中添加以下内容
[dependencies]
chorus = "0.15.0"
建立连接
要连接到 Spacebar 兼容的服务器,您需要创建一个 Instance
,如下所示
use chorus::instance::Instance;
#[tokio::main]
async fn main() {
let instance = Instance::new("https://example.com")
.await
.expect("Failed to connect to the Spacebar server");
// You can create as many instances of `Instance` as you want, but each `Instance` should likely be unique.
dbg!(instance.instance_info);
dbg!(instance.limits_information);
}
此实例现在可以用来登录、注册,并从那里开始以各种方式与服务器交互。
登录
正确登录将为您提供 ChorusUser
的实例,您可以使用它与服务器交互并操作账户。假设您已经在服务器上拥有账户,您可以像这样登录
use chorus::types::LoginSchema;
// Assume, you already have an account created on this instance. Registering an account works
// the same way, but you'd use the Register-specific Structs and methods instead.
let login_schema = LoginSchema {
login: "[email protected]".to_string(),
password: "Correct-Horse-Battery-Staple".to_string(),
..Default::default()
};
// Each user connects to the Gateway. The Gateway connection lives on a separate thread. Depending on
// the runtime feature you choose, this can potentially take advantage of all of your computers' threads.
let user = instance
.login_account(login_schema)
.await
.expect("An error occurred during the login process");
dbg!(user.belongs_to);
dbg!(&user.object.read().unwrap().username);
支持的平台
所有主要桌面操作系统(Windows、macOS(aarch64/x86_64)、Linux(aarch64/x86_64))都受到支持。 wasm32-unknown-unknown
是从版本 0.12.0
开始支持的编译目标。这使得您可以在浏览器中或在任何支持 WebAssembly 的环境中使用 Chorus。
我们建议您查看示例目录以及文档以获取更多信息。
MSRV (最低支持的 Rust 版本)
Rust 1.67.1。这个数字可能会在任何时候改变,因为 Chorus 的版本还不是 1.0.0。
开发设置
请确保您已安装至少 Rust 1.67.1。您可以通过在终端运行 cargo --version
来检查您的 Rust 版本。要为 wasm32-unknown-unknown
编译,您需要安装 wasm32-unknown-unknown
目标。您可以通过运行 rustup target add wasm32-unknown-unknown
来完成此操作。
测试
通常,测试将需要您运行 Spacebar 服务器的本地实例。您可以在这里找到如何做到这一点的说明。您可以在这里找到预配置的服务器版本。建议使用预配置版本,因为某些功能(如“代理连接检查”)在此版本中已禁用,否则可能会破坏测试。
wasm
要测试 wasm,您需要运行 cargo install wasm-pack
。然后,您可以运行 wasm-pack test --<chrome/firefox/safari> --headless -- --target wasm32-unknown-unknown --features="rt, client, voice_gateway" --no-default-features
来运行 wasm 的测试。
版本控制
此软件包使用语义版本控制 2.0.0 作为其版本控制方案。您可以在这里阅读规范。
贡献
请参阅CONTRIBUTING.md。
进度跟踪/路线图
核心功能
- 速率限制器(提示:由于Spacebar 服务器的问题,无法完全测试)
- 登录(传统方式)
- 双因素认证
- 注册
消息
- 发送消息
- 事件(消息、用户、频道等)
- 创建频道
- 删除频道
- 频道管理(名称、描述、图标等)
- 加入和离开公会
- 开始私聊
- 创建、删除和成员管理群聊
- 删除消息
- 消息线程
- 反应
- 消息搜索
- 消息历史
- 表情符号
- 贴纸
- 论坛频道
用户管理
附加功能
- 服务器发现
- 服务器模板
语音和视频
权限和角色
公会管理
- 公会创建
- 公会删除
- 公会设置(名称、描述、图标等)
- 公会邀请
管理
- 频道管理(慢速模式等)
- 用户处罚(禁言、踢出、封禁)
- 审计日志
嵌入和丰富内容
- 在消息中发送丰富内容(链接、图片、视频)
- 自定义嵌入外观(标题、描述、颜色、字段)
Webhook
- Webhook 创建和管理
- 处理传入的 webhook 事件
文档和示例
- 全面文档
- 示例用法和代码片段
- 教程和指南
依赖关系
~15–37MB
~704K SLoC