8 stable releases
2.2.0 | Feb 18, 2023 |
---|---|
2.1.0 | Jan 4, 2023 |
2.0.1 | Jan 1, 2023 |
1.1.1 | Dec 31, 2022 |
1.0.1 | Dec 31, 2022 |
#4 in #notifier
Used in ls-interactive
15KB
174 lines
🔔 Tiny Update Notifier 🔔
Tiny update notifier utility for rust cli programs
Checks for update if more than 24h have passed since the last check (Customizable),
Then pops up a notification if a new version was found 📢
supports crates.io and github releases
Installation
Install tiny_update_notifier using Cargo
cargo add tiny_update_notifier
Usage
Multi-threaded / Non-blocking :
// check on crates.io
tiny_update_notifier::check_cratesIO(pkg_version, pkg_name);
// check on github releases
tiny_update_notifier::check_github(pkg_version, pkg_name, pkg_repo_url);
Single-threaded / Blocking
tiny_update_notifier::Notifier::new(
tiny_update_notifier::Source,
pkg_version,
pkg_name,
pkg_repo_url
)
.interval(Duration) //Optional, default is 24h
.run();
Examples
// Spawns a thread to check for updates on Crates.io and notify user if there is a new version available.
use tiny_update_notifier::check_cratesIO;
fn main() {
check_cratesIO(
env!("CARGO_PKG_VERSION"),
env!("CARGO_PKG_NAME"),
);
}
// Spawns a thread to check for updates on GitHub Releases and notify user if there is a new version available.
use tiny_update_notifier::check_github;
fn main() {
check_github(
env!("CARGO_PKG_VERSION"),
env!("CARGO_PKG_NAME"),
env!("CARGO_PKG_REPOSITORY"),
);
}
// Equivalent to check_github, except the interval is changed to 1 week
use std::{thread, time::Duration};
use tiny_update_notifier::{Notifier, Source};
fn main() {
thread::spawn(|| {
Notifier::new(
Source::GitHub,
env!("CARGO_PKG_VERSION"),
env!("CARGO_PKG_NAME"),
env!("CARGO_PKG_REPOSITORY"),
)
.interval(Duration::from_secs(60 * 60 * 24 * 7))
.run();
});
}
Dependencies
~0.7–25MB
~348K SLoC