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 2023 年 8 月 5 日

#120 in WebSocket

MIT 许可证

63KB
1.5K SLoC

gotify-rs

Build Status Crates.io Documentation License: MIT

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