chore: cargo workspace skeleton
Eleven empty crates per DESIGN.md §11, versions and lints pinned once in the root manifest, Justfile carrying the §12 gate, nix dev shell. The frontend steps in `just ci` no-op until web/ exists. arr-core carries one placeholder test because `cargo nextest` fails a zero-test run, and relaxing that would let a broken filter go green later. Closes #1 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+69
@@ -0,0 +1,69 @@
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
members = ["crates/*"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
license = "MIT"
|
||||
repository = "https://git.naps.pt/yolo/arr"
|
||||
publish = false
|
||||
|
||||
[workspace.dependencies]
|
||||
# Internal
|
||||
arr-api = { path = "crates/arr-api" }
|
||||
arr-compat = { path = "crates/arr-compat" }
|
||||
arr-core = { path = "crates/arr-core" }
|
||||
arr-db = { path = "crates/arr-db" }
|
||||
arr-dl = { path = "crates/arr-dl" }
|
||||
arr-indexer = { path = "crates/arr-indexer" }
|
||||
arr-meta = { path = "crates/arr-meta" }
|
||||
arr-parse = { path = "crates/arr-parse" }
|
||||
arr-probe = { path = "crates/arr-probe" }
|
||||
|
||||
# Runtime and HTTP
|
||||
axum = "0.8"
|
||||
tokio = { version = "1", features = ["macros", "rt-multi-thread", "sync", "time", "net", "io-util", "fs", "signal", "process"] }
|
||||
tower-http = { version = "0.6", features = ["trace"] }
|
||||
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
|
||||
|
||||
# Persistence
|
||||
sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "sqlite", "macros", "migrate", "chrono", "json"] }
|
||||
|
||||
# API surface
|
||||
utoipa = { version = "5", features = ["axum_extras", "chrono"] }
|
||||
utoipa-axum = "0.2"
|
||||
utoipa-scalar = { version = "0.3", features = ["axum"] }
|
||||
|
||||
# Embedded frontend
|
||||
include_dir = "0.7"
|
||||
mime_guess = "2"
|
||||
|
||||
# Serialisation
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
quick-xml = { version = "0.37", features = ["serialize"] }
|
||||
toml = "0.8"
|
||||
|
||||
# Odds and ends
|
||||
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
|
||||
clap = { version = "4.5", features = ["derive", "env"] }
|
||||
thiserror = "2"
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||
uuid = { version = "1", features = ["v4", "serde"] }
|
||||
|
||||
# Test-only
|
||||
wiremock = "0.6"
|
||||
|
||||
[workspace.lints.rust]
|
||||
unused_crate_dependencies = "warn"
|
||||
missing_debug_implementations = "warn"
|
||||
|
||||
[workspace.lints.clippy]
|
||||
pedantic = { level = "warn", priority = -1 }
|
||||
unwrap_used = "warn"
|
||||
|
||||
[profile.release]
|
||||
lto = "thin"
|
||||
codegen-units = 1
|
||||
Reference in New Issue
Block a user