| 1 | [package] |
| 2 | name = "ferrenium" |
| 3 | version = "0.2.0" |
| 4 | edition = "2024" |
| 5 | rust-version = "1.89" |
| 6 | description = "A fast, read-only Git repository browser" |
| 7 | license = "GPL-3.0-only" |
| 8 | repository = "https://github.com/krolyxon/ferrenium" |
| 9 | publish = false |
| 10 | |
| 11 | [dependencies] |
| 12 | ammonia = "4.2" |
| 13 | anyhow = "1.0.104" |
| 14 | arc-swap = "1.9.3" |
| 15 | bytes = "1" |
| 16 | askama = "0.16.1" |
| 17 | axum = { version = "0.8.9", default-features = false, features = ["http1", "tokio", "query"] } |
| 18 | clap = { version = "4.6.7", features = ["derive", "env"] } |
| 19 | comrak = { version = "0.59", default-features = false } |
| 20 | fancy-regex = "0.16" |
| 21 | futures-util = { version = "0.3", default-features = false, features = ["std"] } |
| 22 | # No `extras`/`interrupt`: they install their own signal handlers. |
| 23 | gix = { version = "0.90.0", default-features = false, features = ["max-performance", "revision", "blob-diff", "blame", "mailmap", "worktree-archive", "sha1"] } |
| 24 | # Snapshot formats (gix only enables the bare crate). |
| 25 | gix-archive = { version = "0.39", default-features = false, features = ["tar_gz", "zip"] } |
| 26 | jiff = "0.2.39" |
| 27 | mime_guess = "2.0.5" |
| 28 | moka = { version = "0.12", features = ["sync"] } |
| 29 | notify = { version = "8.2.1", default-features = false } |
| 30 | rust-embed = "8.13.0" |
| 31 | sd-notify = "0.5.0" |
| 32 | serde = { version = "1.0.229", features = ["derive"] } |
| 33 | syntect = { version = "5.3", default-features = false, features = ["parsing", "html", "regex-fancy"] } |
| 34 | thiserror = "2.0.21" |
| 35 | tokio = { version = "1.54.1", features = ["rt-multi-thread", "macros", "net", "signal", "sync", "time", "process", "io-util", "fs"] } |
| 36 | tokio-util = { version = "0.7", features = ["io", "io-util"] } |
| 37 | toml = "1.2.0" |
| 38 | tower = { version = "0.5.3", features = ["util"] } |
| 39 | tower-http = { version = "0.7.1", features = ["trace", "catch-panic", "compression-gzip", "set-header"] } |
| 40 | tracing = "0.1.44" |
| 41 | tracing-subscriber = { version = "0.3.23", features = ["env-filter", "fmt"] } |
| 42 | two-face = { version = "0.5", default-features = false, features = ["syntect-fancy"] } |
| 43 | |
| 44 | [dev-dependencies] |
| 45 | tempfile = "3" |
| 46 | |
| 47 | [profile.release] |
| 48 | lto = "fat" |
| 49 | codegen-units = 1 |
| 50 | strip = true |