8个版本 (5个稳定)
1.2.0 | 2023年9月21日 |
---|---|
1.1.0 | 2023年8月26日 |
1.0.2 | 2023年6月21日 |
0.1.2 | 2023年4月12日 |
#770 in 数据结构
每月42次下载
225KB
5K SLoC
Rive
Rive是一个简单而强大灵活的Rust crate生态系统,用于Revolt API。它实现了整个Revolt API,适合创建自定义客户端或机器人。
实现的主要原则是简单和直接。这使得它更容易理解,也更容易贡献。
生态系统包括rive-models
、rive-http
、rive-gateway
等。下面将详细介绍。
主要的rive
crate只是重新导出这些crate。尽管如此,建议单独使用crate以获得更多灵活性。
您可以在此处加入支持服务器。
MSRV
最低支持的Rust版本为1.64。
Crates
这些是大多数用户一起使用以获得完整开发体验的crate。您可能不需要所有这些,但它们通常一起使用以实现您所需的大部分功能。
rive
一个包含所有其他crate的全能crate。它还提供了一个包含与Revolt交互所需所有内容的对象。这对于快速原型设计很有用。然而,建议为了更多的灵活性,单独使用每个crate。
rive-models
定义所有Revolt API实体结构、枚举和位掩码的模型。模型分为子模块,例如user
用于包含特定于用户实体的类型,event
用于包含来自WebSocket的事件,data
用于包含用于API请求的字段。
可以使用Serde
进行序列化或反序列化。
rive-http
支持所有Revolt REST API的HTTP客户端。它基于reqwest
。
rive-gateway
Revolt WebSocket API的实现。这负责从Revolt实时接收事件并发送一些信息。它基于tokio-tungstenite
。
它还包括一个基本的自动心跳机制(服务器ping以保持连接活跃)。如果您需要更高级的功能,例如服务器延迟测量,您将需要自行实现。
rive-autumn
Autumn的HTTP客户端,Autumn是一个负责在Revolt上存储文件和附件的微服务。基于reqwest
和Tokio的异步I/O。
rive-cache-inmemory
内存缓存实现。
它处理传入的事件,根据事件类型和数据添加/修改/删除资源。
致谢
- 模型直接取自Revolt的后端。
- 该项目深受
twilight
的启发。<3 - Rive标志是从Google Icons中混搭而来的。
许可证
Crates在GNU Lesser General Public License v2.1下分发。品牌资产在Apache License 2.0下分发。
依赖项
~9–23MB
~369K SLoC