cloudiful-notifier
cloudiful-notifier is a small async delivery library for outbound notifications.
Current providers:
ntfy- generic JSON webhooks
- DingTalk custom robots
- SMTP email
The crate focuses on transport concerns only:
- provider config
- provider-neutral message envelopes
- request signing and header handling
- uniform delivery results
It intentionally does not own application-specific concepts such as user settings, notification templates, rule storage, or MCP tool surfaces.
Internal layout
cloudiful-notifier: only published crate, withNotifier- internal core module: shared message, result, error, and trait types
- internal
ntfymodule - internal generic JSON webhook module
- internal DingTalk module
- internal SMTP email module
Features
Default features include all providers.
[]
= { = "0.2", = false, = ["webhook"] }
Available provider features:
ntfywebhookdingtalkemail
Example
use ;
use json;
use BTreeMap;
let mut extra_headers = new;
extra_headers.insert;
let channel = WebhookChannel ;
let mut message = new.with_title;
message
.metadata
.insert;
message
.metadata
.insert;
let client = new;
let notifier = new;
# let _ = notifier.send.await;
Webhook payloads use the generic envelope shape:
Text-oriented providers treat the envelope differently:
ntfy:titlemaps to theTitleheader,bodyis sent as-isdingtalk: message text istitle + "\n" + bodywhen a title existsemail:titlemaps toSubject,bodyis plain text, optionalhtml_bodyadds an HTML alternative part
Email example
use ;
let channel = EmailChannel ;
let message = new
.with_title
.with_html_body;
let client = new;
let notifier = new;
# let _ = notifier.send.await;
Publishing
This repository publishes a single crate: cloudiful-notifier.
Provider and core implementations stay internal to the package.