Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
heartwood Cargo.toml
[workspace]
members = ["crates/*"]
resolver = "2"

[workspace.package]
edition = "2024"
homepage = "https://radicle.dev"
license = "MIT OR Apache-2.0"
repository = "https://radicle.network/seeds/seed.radicle.dev/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5"
version = "0.9.0"

# Even though some crates in this workspace may build fine
# on a lower version, we set it here and inherit in all
# crates. This is to simplify maintenance. As of 2025-05-13
# we do not have the capacity to think about `rust-version`
# *per crate*. If anyone ever wants to set it to a different
# value per crate, this is of course possible. We're waiting
# for the day it makes a difference…
rust-version = "1.85.0"

[workspace.dependencies]
amplify = { version = "4.0.0", default-features = false }
backtrace = "0.3.75"
bstr = "1.3"
bytes = "1.11.1"
chrono = { version = "0.4.26", default-features = false }
colored = "2.1.0"
crossbeam-channel = "0.5.6"
cypheraddr = "0.4.1"
cyphernet = "0.5.3"
dunce = "1.0.5"
fastrand = { version = "2.0.0", default-features = false }
git2 = { version = "0.20.4", default-features = false, features = ["vendored-libgit2"] }
gix-hash = { version = "0.22.1", default-features = false, features = ["sha1"] }
gix-packetline = { version = "0.21.1", default-features = false }
human-panic = "2.0.6"
humantime = "2.3"
indexmap = { version = "2", default-features = false }
itertools = "0.14"
lexopt = "0.3.0"
libc = "0.2.137"
log = "0.4.17"
multibase = "0.9.1"
nonempty = "0.9.0"
pretty_assertions = "1.3.0"
proptest = "1.9"
qcheck = { version = "1", default-features = false }
qcheck-macros = { version = "1", default-features = false }
radicle = { version = "0.23", path = "crates/radicle" }
radicle-cli = { version = "0.20", path = "crates/radicle-cli" }
radicle-cli-test = { path = "crates/radicle-cli-test" }
radicle-cob = { version = "0.19", path = "crates/radicle-cob" }
radicle-core = { version = "0.2", path = "crates/radicle-core" }
radicle-crypto = { version = "0.16", path = "crates/radicle-crypto" }
radicle-dag = { version = "0.10", path = "crates/radicle-dag" }
radicle-fetch = { version = "0.19", path = "crates/radicle-fetch" }
radicle-git-metadata = { version = "0.2.0", path = "crates/radicle-git-metadata", default-features = false }
radicle-git-ref-format = { version = "0.1.0", path = "crates/radicle-git-ref-format", default-features = false }
radicle-localtime = { version = "0.1", path = "crates/radicle-localtime" }
radicle-node = { version = "0.19", path = "crates/radicle-node" }
radicle-oid = { version = "0.1.0", path = "crates/radicle-oid", default-features = false }
radicle-protocol = { version = "0.7", path = "crates/radicle-protocol" }
radicle-signals = { version = "0.11", path = "crates/radicle-signals" }
radicle-systemd = { version = "0.12", path = "crates/radicle-systemd" }
radicle-term = { version = "0.17", path = "crates/radicle-term" }
radicle-windows = { version = "0.1", path = "crates/radicle-windows" }
schemars = { version = "1.0.4", default-features = false }
serde = { version = "1.0", default-features = false }
serde_json = "1.0"
shlex = "1.1.0"
signature = "2.2"
snapbox = "0.4.3"
sqlite = "0.37.0"
tempfile = "3.3.0"
thiserror = { version = "2", default-features = false }
uds_windows = "1.1.0"
windows = "0.62"
winpipe = "0.1.1"
winsplit = "0.1.0"
zeroize = "1.5.7"

# Crates from the "radicle-git" workspace. These should be synced manually.
# When updating, start from `radicle-surf`:
# `radicle-surf` → `radicle-git-ext` → `git-ref-format` → `git-ref-format-core`
# Also note that `radicle-surf → git2` so try to also sync with `git2`.
git-ref-format-core = { version = "0.6.0", default-features = false }
radicle-surf = "0.27.1"

[workspace.lints.clippy]
fallible_impl_from = "deny"
fn_params_excessive_bools = "deny"
indexing_slicing = "deny"
must_use_candidate = "deny"
unneeded_field_pattern = "deny"
wildcard_enum_match_arm = "deny"

[profile.container]
inherits = "release"
debug = true
incremental = false