Crates.io | gotify |
lib.rs | gotify |
version | 0.4.0 |
source | src |
created_at | 2023-08-05 22:00:03.909616 |
updated_at | 2023-09-17 21:43:37.217715 |
description | Idiomatic client for the Gotify API |
homepage | |
repository | https://github.com/d-k-bo/gotify-rs |
max_upload_size | |
id | 936810 |
size | 182,555 |
An idiomatic Rust client for Gotify.
By default, this crate only exposes the Client::health()
,
Client::version()
methods.
All other categories of endpoints must be enabled by the corresponding feature flags.
Feature flag | Enabled methods | Note |
---|---|---|
app |
Client::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() |
doesn't include Client::create_message() and Client::stream_messages() |
manage-plugins |
Client::get_plugins() , Client::get_plugin_config() , Client::update_plugin_config() , Client::disable_plugin() , Client::get_plugin_display() , Client::enable_plugin() |
|
manage-users |
Client::get_current_user() , Client::update_current_user() , Client::get_users() , Client::get_user() , Client::update_user() , Client::delete_user() |
|
websocket |
Client::stream_messages() |
enables additional dependencies (mainly tokio-tungstenite ) |
Most methods that send data to Gotify's API use the
builder pattern
for a more readable API and better support of future additions to Gotify's API.
If an optional parameter is added to an endpoint, it can be be added
as a builder method without causing to much breakage.
All builders implement IntoFuture
, so those
methods can also be await
ed directly, just as if they were regular async methods.
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:#?}")
}
This project is licensed under the MIT License.
See LICENSE for more information.