4 个版本 (破坏性更改)
0.4.0 | 2023 年 9 月 17 日 |
---|---|
0.3.0 | 2023 年 9 月 1 日 |
0.2.0 | 2023 年 8 月 28 日 |
0.1.0 | 2023 年 8 月 27 日 |
0.0.1 |
|
#120 in WebSocket
63KB
1.5K SLoC
gotify-rs
Gotify 的惯用 Rust 客户端。
概述
默认情况下,此 crate 只暴露了 Client::health()
、Client::version()
方法。所有其他端点的类别必须通过相应的功能标志启用。
可用的功能标志表
功能标志 | 启用的方法 | 注意 |
---|---|---|
app |
客户端::create_message() |
|
manage-applications |
Client::get_applications() 、Client::create_application() 、Client::update_application() 、Client::delete_application() 、Client::delete_application_image() |
|
manage-clients |
Client::get_clients() 、Client::create_client() 、Client::update_client() 、Client::delete_client() |
|
manage-messages |
Client::get_application_messages() ,Client::delete_application_messages() ,Client::get_messages() ,Client::delete_messages() ,Client::delete_message() |
不包含Client::create_message() 和Client::stream_messages() |
管理插件 |
Client::get_plugins() ,Client::get_plugin_config() ,Client::update_plugin_config() ,Client::disable_plugin() ,Client::get_plugin_display() ,Client::enable_plugin() |
|
管理用户 |
Client::get_current_user() ,Client::update_current_user() ,Client::get_users() ,Client::get_user() ,Client::update_user() ,Client::delete_user() |
|
WebSocket |
客户端::stream_messages() |
启用额外的依赖(主要是tokio-tungstenite ) |
大多数将数据发送到Gotify API的方法使用建造者模式,以实现更易读的API和更好地支持对Gotify API的未来添加。如果向端点添加了可选参数,则可以将其作为建造者方法添加,而不会造成太多破坏。所有建造者都实现了IntoFuture
,因此这些方法也可以直接进行await
,就像它们是常规异步方法一样。
示例
创建消息
let client: gotify::AppClient = gotify::Client::new(GOTIFY_URL, GOTIFY_APP_TOKEN)?;
client.create_message("Lorem ipsum dolor sit amet").with_title("Lorem Ipsum").await?;
监听新消息
use futures_util::StreamExt;
let client: gotify::ClientClient = gotify::Client::new(GOTIFY_URL, GOTIFY_CLIENT_TOKEN)?;
let mut messages = client.stream_messages().await?;
while let Some(result) = messages.next().await {
let message = result?;
println!("{message:#?}")
}
许可证
本项目受MIT许可证的许可。
有关更多信息,请参阅LICENSE。
依赖关系
~4–19MB
~256K SLoC