Novu's Rust SDK
November 13, 2022 Β· View on GitHub
NOTE: THIS PROJECT IS NOT CURRENTLY IN CRATES.IO
This is the Blazingly Fast (not really) SDK for novu. This SDK should be used in your server-side code. π
TODO
- Event Triggering
- Event broadcasting
- Canceling Triggered events
- Subscribers (Work In Progress)
- Activity
- Integrations
- Notification Templates
- Notification Groups
- Template Changes
- Environments
- Feeds
- Documentation (docs.rs)
Quick Start
Requirements
- Rust
- An API key for novu. You can get one here by opening settings and clicking "Api Keys" tab. Or by using your selfhosted instance π
Triggering a notification
You need to add the Currently not possible.novu dependency to your Cargo.toml. This can be done with cargo add novu.
We currently only support async/await.
// Here you create the instance
// If you're selfhosting, You can replace `None` with `Some("your selfhosted novu instance api url")`
let novu = Novu::new("<your api key>", None).unwrap();
let result = novu
.trigger(TriggerPayload {
name: "<your template name>".to_string(),
payload: HashMap::new(),
to: TriggerRecipientsType::Single(
TriggerRecipientBuilder::new("<your subscriber id>")
.first_name("<first name>") // Optional
.email("<email>") // Optional
.build(),
),
})
.await;
// Here you can handle the outcome.
match result {
Ok(event) => {
println!(
"Notification sent!!! \n\nack: {}\nstatus: {}\ntransaction_id: {}",
event.acknowledged, event.status, event.transaction_id
)
}
Err(api_error) => println!("An error occurred: {}", api_error),
}
Things you need to do
- Replace
<your api key>with your api key - Replace
<your template name>with the template you want to use - Replace
<your subscriber id>with your subscriber id
Optional
- Add
first_name, email, avatar, phone_number, last_name, etcto the subscriber
Contributing
Glad that you want to contribute! π
Currently we don't have
CONTRIBUTION.mdorCODE_OF_CONDUCT.md, but these will be created soonβ’
API Docs: docs.novu.co/api
Steps to follow
- Fork the repository
- Make your changes
- Test that those work π
- Push the changes to your fork and make a PR (Pull Request)
- Now someone will review it and hopefully merge it to the repository ππ
Support
For support, join Novu's Discord server or email me@midka.dev.