Skip to content

v0.8.0

Compare
Choose a tag to compare
@andyblarblar andyblarblar released this 22 Aug 02:36
· 25 commits to master since this release
ddc8301

Changelog 📝

Additions

[+] - Full aes128gcm support via ece crate. Credit to @tiesselune for this. See #23 for more. Closes #3.
[+] - Isahc based default client to remove Tokio dependency. Separate changes from #25 but similar effect, although Isahc works on any executor as it uses curl under the hood.
[+] - Cargo feature to enable the old hyper client.
[+] - Generic build_request() to allow for custom clients using the http crate's generic request body. This function is also exported now. This should enable someone to make a say, ureq web push client crate, without our input.
[+] - Add function to create a VAPID builder without a sub, allowing for key material to be reused.
[+] - Method to get the public key bytes from a Vapid signature (useful for sending the key to client without messing with openssl).
[+] - Improved tests and added one to actually test the encryption itself.
[+] - Expand documentation throughout the code base, and update docs to accurately reflect the current web push API.
[+] - Bump to v0.8

Deletions

[-] - Remove all aesgcm code. This significantly reduces maintenance by reducing tests and removes concerns of deprecation. This is possible because of aes128gcm's universal support.
[-] - Remove old GCM/FCM code. This is redundant now that web push is standardized.

Breaking Changes ⚠

  • WebPushClient::new() now returns a Result as the Isahc client has a fallible constructor. This has been applied to both clients to keep the API the same, although the hyper client is infallible.
  • Removal of all gcm/fcm methods on builders. I believe the FCM crate may be a valid upgrade path if FCM is heavily used.
  • Removal of ContentEncoding::AesGcm. Because all tested APIs support (and in the case of Edge only supports) Aes128Gcm, consumers should simply replace the variant with ContentEncoding::Aes128Gcm.