# wpush.rs
[](https://github.com/saez-juan/wpush.rs)
[](https://crates.io/crates/wpush.rs)
[](https://docs.rs/wpush)
![Toast Notification on Windows](https://learn.microsoft.com/en-us/windows/apps/design/images/shell-1x.png)
This crate provides an easy way to send [toast notification](https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/toast-notifications-overview) on Windows. It is heavily inspired on the Go package [go-toast/toast](https://github.com/go-toast/toast).
Also, this library includes WSL support, that means, if you compile and run from WSL, the toast should appear. However, this approach may be limited because, internally, the toast feature on Windows needs to access to `regedit`, which causes some issues to get the `APP_ID`.
Go to full [crate documentation](https://docs.rs/wpush).
## Usage
Add this to your `cargo.toml`:
```toml
[dependencies]
wpush = "0.1.1"
```
On your `main.rs` you could do something like this:
```rust
use wpush::Notification;
fn main() {
let mut n = Notification::new();
n.set_title(Some("WPush Library"));
n.set_message(Some("This toast was sent from Rust!"));
n.push();
}
```
### Notification Setup
The `Notification` has some setters that can be used before pushing.
```rust
let mut n = Notification::new();
n.set_app_id(&str); // The APP_ID is required.
// Default: "Windows App"
n.set_title(Option<&str>);
n.set_message(Option<&str>);
n.set_icon(Option<&str>); // Must be a path to the image file
n.set_audio(Option