1 viewer
rust 1,847,280 · typescript 232,434 · javascript 131,101 · python 19,227 · 6,362 files · digest 755e2ee30522 · built in 2.3 s · crystals off
cre8-util-webpush crates cargo crate
RFC 8030 / 8291 / 8292 web push delivery. ECDH, HKDF-SHA256, AES-128-GCM, and VAPID JWT signing.
3workspace deps
2direct dependents
100transitive dependents
3calls out
6calls in
39.1call-graph weight
0.0%exact crystals
Neighbourhood
Left: crates that declare this one. Right: crates it declares (dev-dependencies included). Edge width grows with resolved calls.
Declared but never named in this crate's source: cre8-platform-env (normal).
Files
lowhigh
File call graph
Resolved calls between this crate's files, callers left of callees.
Heaviest functions
By call-graph weight (PageRank; 1.0 is the average function). 44 functions in all.
| function | kind | lines | cyclomatic | callers | callees | weight | crystal |
|---|---|---|---|---|---|---|---|
| generatesrc/vapid.rs:27 | fn | 12 | 1 | 13 | 0 | 4.2 | |
| sign_vapid_jwtsrc/jwt.rs:22 | fn | 36 | 2 | 3 | 1 | 1.5 | |
| send_pushsrc/send.rs:67 | fn | 27 | 1 | 5 | 5 | 1.4 | |
| Urgency::header_valuesrc/send.rs:35 | method | 8 | 4 | 2 | 0 | 1.4 | |
| single_record_padded_plaintextsrc/body.rs:204 | fn | 6 | 1 | 1 | 0 | 1.3 | |
| serve_oncesrc/send.rs:186 | fn | 44 | 3 | 5 | 0 | 1.3 | |
| audience_from_endpointsrc/send.rs:154 | fn | 14 | 6 | 2 | 0 | 1.3 | |
| hkdf_sha256src/body.rs:216 | fn | 6 | 1 | 3 | 0 | 1.3 | |
| ephemeral_public_key_bytessrc/body.rs:188 | fn | 7 | 1 | 1 | 0 | 1.1 | |
| encrypt_bodysrc/body.rs:79 | fn | 11 | 1 | 2 | 3 | 1 | |
| encrypt_single_recordsrc/body.rs:147 | fn | 15 | 1 | 2 | 1 | 1 | |
| fake_subscriptionsrc/send.rs:179 | fn | 6 | 1 | 4 | 1 | 0.9 | |
| decode_public_keysrc/vapid.rs:43 | fn | 5 | 1 | 2 | 0 | 0.9 | |
| aes128gcm_nonce_arraysrc/body.rs:211 | fn | 3 | 1 | 2 | 0 | 0.9 | |
| EncryptedBody::to_http_bodysrc/body.rs:65 | method | 9 | 1 | 1 | 0 | 0.8 | |
| decode_p256dhsrc/body.rs:163 | fn | 9 | 2 | 2 | 0 | 0.8 | |
| decode_auth_secretsrc/body.rs:173 | fn | 9 | 2 | 2 | 0 | 0.8 | |
| parse_ua_public_keysrc/body.rs:183 | fn | 4 | 1 | 2 | 0 | 0.8 | |
| push_base_headerssrc/send.rs:120 | fn | 7 | 1 | 1 | 1 | 0.8 | |
| push_bodysrc/send.rs:128 | fn | 15 | 2 | 1 | 2 | 0.8 | |
| encryption_materialsrc/body.rs:91 | fn | 14 | 1 | 1 | 4 | 0.8 | |
| subscriber_keyssrc/body.rs:106 | fn | 6 | 1 | 1 | 3 | 0.8 | |
| webpush_prk_infosrc/body.rs:196 | fn | 7 | 1 | 1 | 0 | 0.8 | |
| push_audiencesrc/send.rs:100 | fn | 3 | 1 | 1 | 1 | 0.7 | |
| push_vapid_tokensrc/send.rs:104 | fn | 4 | 1 | 1 | 1 | 0.7 | |
| push_request_partssrc/send.rs:109 | fn | 10 | 1 | 1 | 2 | 0.7 | |
| push_response_resultsrc/send.rs:144 | fn | 9 | 4 | 1 | 0 | 0.7 | |
| fake_subscribersrc/body.rs:229 | fn | 6 | 1 | 1 | 1 | 0.7 | |
| ephemeral_key_pairsrc/body.rs:113 | fn | 5 | 1 | 1 | 1 | 0.7 | |
| derive_prk_keysrc/body.rs:119 | fn | 5 | 1 | 1 | 2 | 0.7 | |
| random_saltsrc/body.rs:125 | fn | 14 | 2 | 1 | 0 | 0.7 | |
| derive_content_keyssrc/body.rs:140 | fn | 6 | 1 | 1 | 2 | 0.7 | |
| encrypts_with_expected_shapesrc/body.rs:237 | fn | 8 | 1 | 0 | 2 | 0.5 | |
| body_validation_helpers_reject_bad_inputssrc/body.rs:247 | fn | 10 | 1 | 0 | 4 | 0.5 | |
| body_crypto_helpers_report_bad_key_lengths_and_hkdf_limitssrc/body.rs:259 | fn | 5 | 1 | 0 | 2 | 0.5 | |
| jwt_has_three_segments_and_decodable_claimssrc/jwt.rs:65 | fn | 21 | 1 | 0 | 2 | 0.5 | |
| jwt_rejects_bad_private_keys_and_caps_lifetimesrc/jwt.rs:88 | fn | 27 | 1 | 0 | 3 | 0.5 | |
| urgency_headers_and_audience_parsing_cover_wire_valuessrc/send.rs:232 | fn | 12 | 1 | 0 | 2 | 0.5 | |
| send_push_sends_empty_poke_with_vapid_headerssrc/send.rs:246 | fn | 16 | 1 | 0 | 4 | 0.5 | |
| send_push_encrypts_non_empty_payloadsrc/send.rs:264 | fn | 13 | 1 | 0 | 4 | 0.5 |
Outside the workspace
aes-gcm anyhow base64 getrandom hkdf p256 serde serde_json sha2 thiserror