chore: scaffold v2 workspace

This commit is contained in:
2026-05-14 03:07:45 +02:00
parent 321571aae9
commit 63a7001165
29 changed files with 188 additions and 0 deletions

48
Cargo.toml Normal file
View File

@@ -0,0 +1,48 @@
[workspace]
members = [
"crates/domain",
"crates/application",
"crates/api-types",
"crates/presentation",
"crates/worker",
"crates/adapters/postgres",
"crates/adapters/postgres-search",
"crates/adapters/postgres-federation",
"crates/adapters/activitypub-base",
"crates/adapters/activitypub",
"crates/adapters/auth",
"crates/adapters/nats",
"crates/adapters/event-payload",
"crates/adapters/event-publisher",
]
resolver = "2"
[workspace.dependencies]
tokio = { version = "1.0", features = ["macros", "net", "rt", "rt-multi-thread", "sync", "time"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
anyhow = "1.0"
thiserror = "2.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
async-trait = "0.1"
uuid = { version = "1.0", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid", "chrono", "macros"] }
axum = { version = "0.8", features = ["macros"] }
tower-http = { version = "0.6", features = ["cors", "trace"] }
futures = "0.3"
dotenvy = "0.15"
domain = { path = "crates/domain" }
application = { path = "crates/application" }
api-types = { path = "crates/api-types" }
postgres = { path = "crates/adapters/postgres" }
postgres-search = { path = "crates/adapters/postgres-search" }
postgres-federation = { path = "crates/adapters/postgres-federation" }
activitypub-base = { path = "crates/adapters/activitypub-base" }
activitypub = { path = "crates/adapters/activitypub" }
auth = { path = "crates/adapters/auth" }
nats = { path = "crates/adapters/nats" }
event-payload = { path = "crates/adapters/event-payload" }
event-publisher = { path = "crates/adapters/event-publisher" }

View File

@@ -0,0 +1,4 @@
[package]
name = "activitypub-base"
version = "0.1.0"
edition = "2021"

View File

@@ -0,0 +1,4 @@
[package]
name = "activitypub"
version = "0.1.0"
edition = "2021"

View File

View File

@@ -0,0 +1,14 @@
[package]
name = "auth"
version = "0.1.0"
edition = "2021"
[dependencies]
domain = { workspace = true }
async-trait = { workspace = true }
thiserror = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
tokio = { workspace = true }
jsonwebtoken = "9"
argon2 = "0.5"

View File

View File

@@ -0,0 +1,4 @@
[package]
name = "event-payload"
version = "0.1.0"
edition = "2021"

View File

View File

@@ -0,0 +1,4 @@
[package]
name = "event-publisher"
version = "0.1.0"
edition = "2021"

View File

@@ -0,0 +1,4 @@
[package]
name = "nats"
version = "0.1.0"
edition = "2021"

View File

View File

@@ -0,0 +1,4 @@
[package]
name = "postgres-federation"
version = "0.1.0"
edition = "2021"

View File

@@ -0,0 +1,4 @@
[package]
name = "postgres-search"
version = "0.1.0"
edition = "2021"

View File

@@ -0,0 +1,17 @@
[package]
name = "postgres"
version = "0.1.0"
edition = "2021"
[dependencies]
domain = { workspace = true }
sqlx = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
async-trait = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
[dev-dependencies]
tokio = { workspace = true, features = ["full"] }
sqlx = { workspace = true, features = ["migrate"] }

View File

View File

@@ -0,0 +1,9 @@
[package]
name = "api-types"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }

View File

View File

@@ -0,0 +1,15 @@
[package]
name = "application"
version = "0.1.0"
edition = "2021"
[dependencies]
domain = { workspace = true }
async-trait = { workspace = true }
thiserror = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
[dev-dependencies]
tokio = { workspace = true, features = ["full"] }
domain = { workspace = true, features = ["test-helpers"] }

View File

18
crates/domain/Cargo.toml Normal file
View File

@@ -0,0 +1,18 @@
[package]
name = "domain"
version = "0.1.0"
edition = "2021"
[features]
test-helpers = []
[dependencies]
async-trait = { workspace = true }
thiserror = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
serde = { workspace = true }
futures = { workspace = true }
[dev-dependencies]
tokio = { workspace = true, features = ["full"] }

0
crates/domain/src/lib.rs Normal file
View File

View File

@@ -0,0 +1,33 @@
[package]
name = "presentation"
version = "0.1.0"
edition = "2021"
[[bin]]
name = "thoughts"
path = "src/main.rs"
[dependencies]
domain = { workspace = true }
application = { workspace = true }
api-types = { workspace = true }
postgres = { workspace = true }
auth = { workspace = true }
axum = { workspace = true }
tower-http = { workspace = true }
tokio = { workspace = true, features = ["full"] }
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
dotenvy = { workspace = true }
async-trait = { workspace = true }
sha2 = "0.10"
hex = "0.4"
[dev-dependencies]
http-body-util = "0.1"
tower = "0.5"
domain = { workspace = true, features = ["test-helpers"] }

View File

@@ -0,0 +1 @@
fn main() {}

4
crates/worker/Cargo.toml Normal file
View File

@@ -0,0 +1,4 @@
[package]
name = "worker"
version = "0.1.0"
edition = "2021"

View File

@@ -0,0 +1 @@
fn main() {}