Expand description
§Web Push
A library for creating and sending push notifications to a web browser. For
content payload encryption it uses RFC8188.
The client is asynchronous and can run on any executor. An optional hyper
based client is
available with the feature hyper-client
.
§Example
let endpoint = "https://updates.push.services.mozilla.com/wpush/v1/...";
let p256dh = "key_from_browser_as_base64";
let auth = "auth_from_browser_as_base64";
// You would likely get this by deserializing a browser `pushSubscription` object.
let subscription_info = SubscriptionInfo::new(
endpoint,
p256dh,
auth
);
// Read signing material for payload.
let file = File::open("private.pem").unwrap();
let mut sig_builder = VapidSignatureBuilder::from_pem(file, &subscription_info)?.build()?;
// Now add payload and encrypt.
let mut builder = WebPushMessageBuilder::new(&subscription_info);
let content = "Encrypted payload to be sent in the notification".as_bytes();
builder.set_payload(ContentEncoding::Aes128Gcm, content);
builder.set_vapid_signature(sig_builder);
let client = IsahcWebPushClient::new()?;
// Finally, send the notification!
client.send(builder.build()?).await?;
Modules§
- request_
builder - Functions used to send and consume push http messages. This module can be used to build custom clients.
Structs§
- Isahc
WebPush Client - An async client for sending the notification payload. This client is expensive to create, and should be reused.
- Partial
Vapid Signature Builder - A
VapidSignatureBuilder
without VAPID subscription info. - Subscription
Info - Client info for sending the notification. Maps the values from browser’s subscription info JSON data (AKA pushSubscription object).
- Subscription
Keys - Encryption keys from the client.
- Vapid
Signature - A struct representing a VAPID signature. Should be generated using the VapidSignatureBuilder.
- Vapid
Signature Builder - A VAPID signature builder for generating an optional signature to the request. This encryption is required for payloads in all current and future browsers.
- WebPush
Message - Everything needed to send a push notification to the user.
- WebPush
Message Builder - The main class for creating a notification payload.
- WebPush
Payload - The push content payload, already in an encrypted form.
Enums§
- Content
Encoding - Content encoding profiles.
- Urgency
- WebPush
Error
Traits§
- WebPush
Client - An async client for sending the notification payload. Other features, such as thread safety, may vary by implementation.