[package] name = "starhaven" version = "0.1.0" edition = "2021" [[bin]] name = "server" path = "src/main.rs" [profile.dev] debug = "line-tables-only" # We never step into dependencies, and their debuginfo dominates link time. [profile.dev.package."*"] debug = 0 [profile.debugging] inherits = "dev" debug = "full" # These derive `Debug` only with debug assertions on, and the server formats # their errors and keeps their types in structs that derive it. [profile.release.package.atproto-record] debug-assertions = true [profile.release.package.atproto-client] debug-assertions = true [dependencies] axum = "0.8" maud = { version = "0.27", features = ["axum"] } tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time"] } tokio-stream = { version = "0.1", features = ["sync"] } sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite", "migrate", "chrono"] } atproto-identity = "0.14.5" atproto-oauth = "0.14.5" serde = { version = "1", features = ["derive"] } serde_json = "1" serde_urlencoded = "0.7" aes-gcm = "0.11" rand = "0.9" cookie = "0.18" base64 = "0.22" chrono = { version = "0.4", features = ["serde"] } thiserror = "2" anyhow = "1" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } reqwest-middleware = "0.4" reqwest-chain = "1.0" urlencoding = "2.1" clap = { version = "4.6.6", default-features = false, features = [ "std", "derive", "help", "usage", "error-context", ] } tower-livereload = "0.10" rust-embed = { version = "8", features = ["mime-guess", "include-exclude"] } notify-debouncer-mini = "0.7" atproto-record = "0.14.5" atproto-tap = "0.14.5" atproto-client = "0.14.5" icondata = { version = "0.7.0", default-features = false, features = ["lucide"] } # "with-tokio" rather than "tokio-rustls-tls": the latter also turns on # aws-creds' fetch-credentials-over-HTTP support, which brings a second TLS # stack alongside the one reqwest already uses here. Credentials come from a # file, never from an instance metadata endpoint. rust-s3 = { version = "0.37.2", default-features = false, features = ["with-tokio"] } lettre = { version = "0.11", default-features = false, features = [ "smtp-transport", "pool", "hostname", "builder", "tokio1-rustls-tls", ] } sha2 = "0.10" url = "2" pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] } ammonia = "4" htmd = "0.5.5" image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] } webp = { version = "0.3", default-features = false } # Through `image`'s PNG support. Later versions can take an AVX-512 path # that the devshell's Cranelift backend aborts on. crc32fast = "=1.5.0"