Our Personal Data Server from scratch!
tranquil.farm
oauth
atproto
pds
rust
postgresql
objectstorage
fun
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