Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
127 lines (116 loc) · 3.28 KB
/
Copy pathCargo.toml
File metadata and controls
127 lines (116 loc) · 3.28 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
[package]
name = "klaub"
description = "Klaub: a terminal code reviewer for the human reading AI-written code. Review changes by function, ranked by risk, offline and with no LLM."
version = "0.7.0"
edition = "2024"
rust-version = "1.90"
license = "MIT"
repository = "https://github.com/myrk-kale/klaub"
homepage = "https://github.com/myrk-kale/klaub"
documentation = "https://github.com/myrk-kale/klaub/tree/main/docs"
readme = "README.md"
authors = ["The Klaub contributors"]
keywords = ["code-review", "ai-agents", "git", "tree-sitter", "cli"]
categories = ["command-line-utilities", "development-tools"]
build = "build.rs"
exclude = [
".github/",
"skills/",
"packaging/",
"scripts/",
"assets/",
"docs/",
"justfile",
"deny.toml",
"typos.toml",
]
[lib]
name = "klaub"
path = "src/lib.rs"
[[bin]]
name = "klaub"
path = "src/main.rs"
[features]
# Helpers that build throwaway Git repositories and a fixed clock for tests and benches.
# Enabled for them through the self dev-dependency below; never needed by users.
testing = ["dep:tempfile"]
[dependencies]
anyhow = "1.0"
blake3 = "1.8"
clap = { version = "4.6", features = ["derive", "env", "wrap_help"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
time = { version = "0.3", features = ["formatting", "parsing"] }
toml = "1.1"
tree-sitter = "0.27"
tree-sitter-python = "0.25"
tree-sitter-javascript = "0.25"
tree-sitter-typescript = "0.23"
tree-sitter-rust = "0.24"
tree-sitter-go = "0.25"
tree-sitter-java = "0.23"
similar = "3.2"
petgraph = "0.8"
quick-xml = "0.42"
rusqlite = { version = "0.41", features = ["bundled"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
sha2 = "0.11"
flate2 = "1.1"
uuid = { version = "1.18", features = ["v4"] }
ratatui = "0.30"
unicode-width = "0.2"
clap_complete = "4.6"
tempfile = { version = "3.27", optional = true }
[dev-dependencies]
klaub = { path = ".", features = ["testing"] }
assert_cmd = "2.2"
predicates = "3.1"
proptest = "1.12"
tempfile = "3.27"
[[bench]]
name = "latency"
harness = false
[[bench]]
name = "ui"
harness = false
[lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
unreachable_pub = "warn"
rust_2018_idioms = { level = "warn", priority = -1 }
[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
# Library code reports failures through `Result`; panics are reserved for tests.
unwrap_used = "warn"
expect_used = "warn"
dbg_macro = "warn"
todo = "warn"
print_stdout = "warn"
print_stderr = "warn"
# Pedantic lints that cost more readability than they buy in this code base.
module_name_repetitions = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
must_use_candidate = "allow"
too_many_lines = "allow"
similar_names = "allow"
struct_excessive_bools = "allow"
format_push_string = "allow"
struct_field_names = "allow"
single_match_else = "allow"
semicolon_if_nothing_returned = "allow"
redundant_closure_for_method_calls = "allow"
# `assert!(x.is_empty())` reads better in tests than `assert_eq!(x, [])`.
assert_is_empty = "allow"
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"
panic = "abort"
[profile.dev]
# Dependencies (tree-sitter grammars, SQLite) are slow to run unoptimised.
[profile.dev.package."*"]
opt-level = 1