runlight 0.3.2

Privacy friendly web analytics that lives inside your Rust app: mount a route, add a script tag, read your stats at /runlight
Documentation
[package]
name = "runlight"
description = "Privacy friendly web analytics that lives inside your Rust app: mount a route, add a script tag, read your stats at /runlight"
readme = "../README.md"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
include = ["src/**/*", "assets/**/*", "Cargo.toml", "README.md", "LICENSE"]

[features]
default = ["transport"]
# The default Fetcher (reqwest on rustls with the platform's roots) and the
# SMTP transport's TLS, for everything that calls another server: the mail
# services, the importers, connected installs, the assistant, site icons.
# Without it an app passes a Fetcher of its own.
transport = ["dep:reqwest", "dep:tokio-rustls", "dep:rustls-platform-verifier"]
# The routes as a tower Service, for hyper, axum, and most Rust HTTP stacks.
tower = ["dep:http", "dep:http-body", "dep:http-body-util", "dep:bytes", "dep:tower-service"]
# tower, and the mount axum records when the routes are nested.
axum = ["tower", "dep:axum"]

[dependencies]
tokio = { version = "1.44", default-features = false, features = ["rt", "time", "sync", "net", "io-util"] }
getrandom = "0.4"
jiff = "0.2.15"
url = "2.5.4"
percent-encoding = "2.3"
regex = { version = "1.10", default-features = false, features = ["std", "unicode", "perf"] }
sha2 = "0.11"
sha1 = "0.11"
hmac = "0.13"
aes-gcm = "0.11"
ghash = "0.6"
scrypt = { version = "0.12", default-features = false }
pbkdf2 = { version = "0.13", default-features = false, features = ["hmac"] }
base64 = "0.23"
reqwest = { version = "0.13", default-features = false, features = ["rustls-no-provider", "gzip"], optional = true }
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12"], optional = true }
rustls-platform-verifier = { version = "0.7", optional = true }
http = { version = "1.1", optional = true }
http-body = { version = "1", optional = true }
http-body-util = { version = "0.1.2", optional = true }
bytes = { version = "1.7.1", optional = true }
tower-service = { version = "0.3.3", optional = true }
axum = { version = "0.8.4", default-features = false, features = ["original-uri", "tokio"], optional = true }

[dev-dependencies]
tokio = { version = "1.44", features = ["full", "test-util"] }

[package.metadata.docs.rs]
all-features = true

[lints]
workspace = true