Our Personal Data Server from scratch! tranquil.farm
oauth atproto pds rust postgresql objectstorage fun
at main 122 lines 4.2 kB view raw
1[workspace] 2resolver = "2" 3members = [ 4 "crates/tranquil-types", 5 "crates/tranquil-config", 6 "crates/tranquil-infra", 7 "crates/tranquil-crypto", 8 "crates/tranquil-storage", 9 "crates/tranquil-cache", 10 "crates/tranquil-ripple", 11 "crates/tranquil-repo", 12 "crates/tranquil-scopes", 13 "crates/tranquil-auth", 14 "crates/tranquil-oauth", 15 "crates/tranquil-comms", 16 "crates/tranquil-db-traits", 17 "crates/tranquil-db", 18 "crates/tranquil-pds", 19] 20 21[workspace.package] 22version = "0.3.0" 23edition = "2024" 24license = "AGPL-3.0-or-later" 25 26[workspace.dependencies] 27tranquil-types = { path = "crates/tranquil-types" } 28tranquil-config = { path = "crates/tranquil-config" } 29tranquil-infra = { path = "crates/tranquil-infra" } 30tranquil-crypto = { path = "crates/tranquil-crypto" } 31tranquil-storage = { path = "crates/tranquil-storage" } 32tranquil-cache = { path = "crates/tranquil-cache" } 33tranquil-repo = { path = "crates/tranquil-repo" } 34tranquil-scopes = { path = "crates/tranquil-scopes" } 35tranquil-auth = { path = "crates/tranquil-auth" } 36tranquil-oauth = { path = "crates/tranquil-oauth" } 37tranquil-comms = { path = "crates/tranquil-comms" } 38tranquil-db-traits = { path = "crates/tranquil-db-traits" } 39tranquil-db = { path = "crates/tranquil-db" } 40tranquil-ripple = { path = "crates/tranquil-ripple" } 41 42aes-gcm = "0.10" 43backon = "1" 44bincode = { version = "2", features = ["serde"] } 45anyhow = "1.0" 46async-trait = "0.1" 47aws-config = "1.8" 48aws-sdk-s3 = "1.118" 49axum = { version = "0.8", features = ["ws", "macros"] } 50base32 = "0.5" 51base64 = "0.22" 52bcrypt = "0.17" 53bs58 = "0.5" 54bytes = "1.11" 55chrono = { version = "0.4", features = ["serde"] } 56cid = "0.11" 57clap = { version = "4", features = ["derive", "env"] } 58confique = { version = "0.4", features = ["toml"] } 59dotenvy = "0.15" 60ed25519-dalek = { version = "2.1", features = ["pkcs8"] } 61foca = { version = "1", features = ["bincode-codec", "tracing"] } 62futures = "0.3" 63futures-util = "0.3" 64governor = "0.10" 65hex = "0.4" 66hickory-resolver = { version = "0.24", features = ["tokio-runtime"] } 67hkdf = "0.12" 68hmac = "0.12" 69http = "1.4" 70image = { version = "0.25", default-features = false, features = ["jpeg", "png", "gif", "webp"] } 71infer = "0.19" 72ipld-core = "0.4" 73iroh-car = "0.5" 74jacquard-common = { version = "0.9", features = ["crypto-k256"] } 75jacquard-repo = "0.9" 76jsonwebtoken = { version = "10.2", features = ["rust_crypto"] } 77k256 = { version = "0.13", features = ["ecdsa", "pem", "pkcs8"] } 78metrics = "0.24" 79metrics-exporter-prometheus = { version = "0.16", default-features = false, features = ["http-listener"] } 80multibase = "0.9" 81parking_lot = "0.12" 82multihash = "0.19" 83p256 = { version = "0.13", features = ["ecdsa"] } 84p384 = { version = "0.13", features = ["ecdsa"] } 85rand = "0.8" 86redis = { version = "1.0", features = ["tokio-comp", "connection-manager"] } 87regex = "1" 88reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-webpki-roots", "http2", "charset", "macos-system-configuration"] } 89serde = { version = "1.0", features = ["derive"] } 90serde_bytes = "0.11" 91serde_ipld_dagcbor = "0.6" 92serde_json = "1.0" 93serde_urlencoded = "0.7" 94sha2 = "0.10" 95sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid", "chrono", "json"] } 96subtle = "2.5" 97thiserror = "2.0" 98tokio = { version = "1.48", features = ["macros", "rt-multi-thread", "time", "signal", "process", "io-util", "fs"] } 99tokio-util = "0.7.18" 100tokio-tungstenite = { version = "0.28", features = ["rustls-tls-webpki-roots"] } 101totp-rs = { version = "5", features = ["qr"] } 102tower = "0.5" 103tower-http = { version = "0.6", features = ["fs", "cors"] } 104tower-layer = "0.3" 105tracing = "0.1" 106tracing-subscriber = "0.3" 107urlencoding = "2.1" 108uuid = { version = "1.19", features = ["v4", "v5", "v7", "fast-rng", "serde"] } 109webauthn-rs = { version = "0.5", features = ["danger-allow-state-serialisation", "danger-user-presence-only-security-keys"] } 110webauthn-rs-proto = "0.5" 111zip = { version = "7.0", default-features = false, features = ["deflate"] } 112 113ciborium = "0.2" 114ctor = "0.6" 115testcontainers = "0.26" 116testcontainers-modules = { version = "0.14", features = ["postgres"] } 117wiremock = "0.6" 118 119[profile.release] 120lto = "fat" 121strip = true 122codegen-units = 1