mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-17 20:26:35 +02:00
La façade sert la clé VAPID et les (dés)abonnements, et pousse elle-même les notifications « réponse prête » quand LOKI_PUSH=rust (expérimental ; le Go reste le défaut) : chiffrement RFC 8291 (aes128gcm, enregistrement complété à 4096 octets comme webpush-go), signature VAPID RFC 8292 (JWT ES256), abonnements purgés sur 404/410, par ring déjà présent via rustls. Mêmes clés en base que le Go. Côté Go : facade_push.go remet les routes du tunnel à la façade, et sendPushToAll (fin de tour, fin de tâche) lui délègue l'envoi. Parité : parity_push_test.go tire du Go les durées et onze appels de route avec la liste des abonnements en base, rejoués par tests/push.rs ; le chiffrement reproduit l'exemple de la RFC 8291 à l'octet près, et un envoi de bout en bout est déchiffré côté navigateur. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
45 lines
1.6 KiB
TOML
45 lines
1.6 KiB
TOML
[package]
|
|
name = "loki-rs"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
base64 = "0.23.1"
|
|
bytes = "1.12.1"
|
|
bzip2 = "0.6.1"
|
|
flate2 = "1.1.10"
|
|
futures-util = "0.3.34"
|
|
getrandom = "0.4.3"
|
|
hex = "0.4.3"
|
|
http-body-util = "0.1.5"
|
|
image = { version = "0.25.10", default-features = false, features = ["jpeg", "png", "gif"] }
|
|
hyper = { version = "1.12.0", features = ["http1", "server", "client"] }
|
|
hyper-util = { version = "0.1.21", features = ["tokio", "server", "client-legacy", "http1"] }
|
|
regex = "1.13.1"
|
|
url = "2.5.8"
|
|
zip = { version = "2.4.2", default-features = false, features = ["deflate-flate2", "flate2"] }
|
|
ring = { version = "0.17.14", optional = true }
|
|
reqwest = { version = "0.13.5", default-features = false, features = ["rustls-no-provider", "stream", "http2"] }
|
|
rustls = { version = "0.23.46", default-features = false, features = ["ring", "std", "tls12"], optional = true }
|
|
serde = { version = "1.0.229", features = ["derive"] }
|
|
serde_json = { version = "1.0.154", features = ["raw_value"] }
|
|
sha1 = "0.11.0"
|
|
sha2 = "0.11.1"
|
|
tar = { version = "0.4.46", default-features = false }
|
|
tokio = { version = "1.53.2", features = ["rt-multi-thread", "macros", "net", "io-util", "time", "signal", "process", "sync", "fs"] }
|
|
tokio-tungstenite = "0.30.0"
|
|
|
|
[features]
|
|
# Crypto TLS (ring) pour les API externes en HTTPS. Activée par défaut ; le
|
|
# contrôle croisé Linux sous Windows s'en passe (pas d'en-têtes libc Linux).
|
|
default = ["tls"]
|
|
tls = ["dep:rustls", "dep:ring"]
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1.53.2", features = ["test-util"] }
|
|
futures-util = "0.3.34"
|
|
tempfile = "3.27.0"
|