ntfy

Crates.iontfy
lib.rsntfy
version0.7.0
created_at2022-11-08 10:33:47.148892+00
updated_at2025-01-13 11:26:23.249855+00
descriptionLibrary for sending notifications over ntfy
homepagehttps://github.com/shadowylab/ntfy
repositoryhttps://github.com/shadowylab/ntfy.git
max_upload_size
id707965
size68,916
Yuki Kishimoto (yukibtc)

documentation

README

Ntfy

crates.io Documentation MIT

Description

Rust library for sending notifications over ntfy.

Example

use ntfy::prelude::*;

#[tokio::main]
async fn main() -> Result<(), Error> {
    let dispatcher = dispatcher::builder("https://ntfy.sh")
        .credentials(Auth::credentials("username", "password")) // Add optional credentials
        .proxy("socks5h://127.0.0.1:9050") // Add optional proxy
        .build_async()?; // Build dispatcher

    let action = Action::new(
        ActionType::Http,
        "Turn down",
        Url::parse("https://api.nest.com")?,
    );

    let payload = Payload::new("mytopic")
        .message("Hello, **World**!") // Add optional message
        .title("Alert") // Add optiona title
        .tags(["warning"]) // Add optional tags
        .priority(Priority::High) // Edit priority
        .actions([action]) // Add optional actions
        .click(Url::parse("https://example.com")?) // Add optional clickable url
        .attach(Url::parse("https://example.com/file.jpg")?) // Add optional url attachment
        .delay(1639194738) // Add optional delay
        .markdown(true); // Use markdown

    dispatcher.send(&payload).await?;

    Ok(())
}

Crate Feature Flags

The following crate feature flags are available:

Feature Default Description
async Yes Use reqwest as dispatcher client
blocking No Use ureq as dispatcher client

More examples can be found in the examples directory.

License

This project is distributed under the MIT software license - see the LICENSE file for details

Commit count: 0

cargo fmt