anvilsign in

collin/anvil

1[workspace]
2resolver = "2"
3members = [
4 "crates/*",
5 "vendor/gitserver-core",
6]
7
8[workspace.package]
9version = "0.0.0"
10edition = "2024"
11license = "MIT OR Apache-2.0"
12repository = "https://github.com/richardscollin/anvil"
13rust-version = "1.95"
14
15[workspace.dependencies]
16# Internal crates
17anvil-core = { path = "crates/anvil-core" }
18anvil-ci = { path = "crates/anvil-ci" }
19anvil-git = { path = "crates/anvil-git" }
20anvil-web = { path = "crates/anvil-web" }
21anvil-ssh = { path = "crates/anvil-ssh" }
22
23anyhow = "1"
24argon2 = { version = "0.5", features = ["std"] }
25axum = "0.8"
26axum-extra = { version = "0.10", features = ["cookie"] }
27base64 = "0.22"
28bollard = "0.18"
29clap = { version = "4", features = ["derive"] }
30futures-util = "0.3"
31hmac = "0.12"
32gitserver-core = { path = "vendor/gitserver-core" }
33gix = { version = "0.84", default-features = false, features = ["sha1", "max-performance-safe", "blob-diff", "revision"] }
34gix-pack = { version = "0.71", features = ["sha1"] }
35maud = { version = "0.27", features = ["axum"] }
36rand = "0.10"
37# HTTP client for the CD deploy webhook. No TLS feature on purpose: the deploy
38# receiver is host-local plaintext HTTP, and enabling rustls would drag in
39# aws-lc-rs and break the musl cross-compile (see the russh note below).
40reqwest = { version = "0.12", default-features = false, features = ["json"] }
41serde = { version = "1", features = ["derive"] }
42serde_json = "1"
43serde_yaml = "0.9"
44sha2 = "0.10"
45similar = "2"
46syntect = { version = "5", default-features = false, features = ["default-fancy"] }
47tar = "0.4"
48thiserror = "2"
49time = { version = "0.3", features = ["serde", "formatting"] }
50toasty = { version = "0.7", features = ["sqlite"] }
51tokio = { version = "1", features = ["full"] }
52tokio-util = { version = "0.7", features = ["io"] }
53toml = "0.8"
54tower = "0.5"
55tower-http = { version = "0.6", features = ["trace", "fs"] }
56tracing = "0.1"
57tracing-subscriber = { version = "0.3", features = ["env-filter"] }
58
59# ssh — use the `ring` crypto backend instead of the default `aws-lc-rs`:
60# ring is far cheaper to compile (no cmake/perl) and cross-compiles cleanly
61# (zigbuild/musl), which matters for building images for the low-RAM VPS.
62russh = { version = "0.61", default-features = false, features = ["flate2", "ring", "rsa"] }
63# ssh-key parsing/fingerprinting, shared by anvil-core (storage) and anvil-ssh
64# (auth). Pinned to match russh's transitive ssh-key so fingerprints agree.
65ssh-key = "0.7.0-rc.10"