1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
[]
= "krab_cli"
= true
= true
= true
= true
= true
= true
= true
= "README.md"
= "https://docs.rs/krab_cli"
= "The `krab` CLI: dev workflow, generators, governance, and release operations for the Krab framework"
= ["krab", "cli", "web", "framework", "codegen"]
= ["command-line-utilities", "development-tools", "web-programming"]
# The package is `krab_cli` because the crates.io name `krab` was taken in 2023
# by an unrelated crate. The *binary* is `krab`, which is how every document in
# the repository invokes it (`krab doctor`, `krab new`, `krab release certify`)
# and what `cargo install krab_cli` puts on PATH. Without this section the
# binary would inherit the package name and none of those commands would work.
[[]]
= "krab"
= "src/main.rs"
[]
= { = "4.4", = ["derive"] }
# Shell completion scripts behind `krab completions <shell>`. Maintained by the
# clap organisation, versioned in lockstep with clap itself, and published under
# the same MIT OR Apache-2.0 dual licence as the clap dependency directly above
# — both licences are already in deny.toml's allowlist, so this adds no new
# licence surface. It pulls in clap_lex/clap_builder, which clap already
# provides, so it adds no new advisory surface either. `clap_mangen` (man page
# generation) is deliberately *not* added: it is a separate crate and a separate
# dependency decision.
= "4.4"
= true
= true
= { = true, = ["derive"] }
= "0.8"
# `auth` provides the Argon2id hashing behind `krab auth hash-password`, so the
# CLI produces credentials in exactly the format the auth service verifies.
= { = true, = ["auth"] }
# Asset fingerprint digests. SHA-256 rather than std's DefaultHasher, whose
# output is documented as unstable across Rust releases — a toolchain bump would
# otherwise rename every fingerprinted asset and bust every downstream cache for
# bytes that never changed. Already in the dependency tree via krab_core's
# migration checksums, and its licence is already in deny.toml's allowlist, so
# this adds no new licence or advisory surface.
= "0.10"
[]
= "3"
= "3"