[package]
name = "tit-cde"
version = "0.1.0"
edition = "2024"
rust-version = "1.96"
license = "MIT"
description = "A small self-hosted collaborative development environment"

[[bin]]
name = "tit"
path = "src/main.rs"

[dependencies]
ammonia = "4.1.4"
askama = { version = "0.16", default-features = false, features = ["derive", "std"] }
axum = { version = "0.8", default-features = false, features = ["http1", "original-uri", "query", "tokio"] }
clap = { version = "4.6", default-features = false, features = ["derive", "error-context", "help", "std", "usage"] }
gix = { version = "0.84", default-features = false, features = ["blame", "merge", "parallel", "revision", "sha1", "sha256"] }
gix-pack = { version = "0.71", default-features = false, features = ["generate", "sha1", "sha256", "streaming-input"] }
httpdate = "1.0.3"
jiff = { version = "0.2.34", default-features = false, features = ["std"] }
multra = "1.1.0"
pulldown-cmark = { version = "0.13.4", default-features = false, features = ["html"] }
rand = "0.10"
rusqlite = { version = "0.40", default-features = false, features = ["backup", "bundled"] }
russh = { version = "0.62", default-features = false, features = ["ring"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha2 = { version = "0.11", default-features = false }
ssh-key = { version = "=0.7.0-rc.11", default-features = false, features = ["ed25519", "p256", "std"] }
tar = { version = "0.4", default-features = false }
thiserror = "2.0"
tokio = { version = "1.53", default-features = false, features = ["fs", "io-util", "macros", "net", "rt-multi-thread", "signal", "sync", "time"] }
tokio-stream = { version = "0.1", default-features = false }
toml = { version = "1.1", default-features = false, features = ["parse", "serde", "std"] }
tower-http = { version = "0.7", default-features = false, features = ["limit"] }
url = { version = "2.5", features = ["serde"] }

[dev-dependencies]
feed-rs = { version = "2.4.0", default-features = false }
tempfile = "3.27"

[lints.rust]
unsafe_code = "forbid"

[profile.release]
codegen-units = 1
lto = "thin"
strip = true
