[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"]
transport = ["dep:reqwest", "dep:tokio-rustls", "dep:rustls-platform-verifier"]
tower = ["dep:http", "dep:http-body", "dep:http-body-util", "dep:bytes", "dep:tower-service"]
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