Skip to main content

max / makenotwork

2.8 KB · 80 lines History Blame Raw
1 [package]
2 name = "bento-daemon"
3 version = "0.1.0"
4 edition = "2024"
5 license = "MIT"
6
7 [[bin]]
8 name = "bentod"
9 path = "src/main.rs"
10
11 [dependencies]
12 ops-core = { path = "../../shared/ops-core" }
13 ops-status = { path = "../../shared/ops-status" }
14 ops-exec = { path = "../../shared/ops-exec", features = ["rpc"] }
15 axum = { version = "0.8.8", features = ["macros", "ws"] }
16 tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "net", "signal", "fs", "process", "sync", "io-util"] }
17 tokio-stream = "0.1"
18 serde = { version = "1.0.228", features = ["derive"] }
19 serde_json = "1"
20 toml = "1.1"
21 sqlx = { version = "0.9", features = ["runtime-tokio", "sqlite", "chrono", "migrate"] }
22 rhai = { version = "1.20", features = ["sync"] }
23 tracing = "0.1.44"
24 tracing-subscriber = { version = "0.3.22", features = ["env-filter", "json"] }
25 metrics = "0.24"
26 metrics-exporter-prometheus = { version = "0.18.1", default-features = false }
27 anyhow = "1.0.102"
28 thiserror = "2.0.18"
29 chrono = { version = "0.4", features = ["serde"] }
30 semver = { version = "1.0", features = ["serde"] }
31 sha2 = "0.10"
32 async-trait = "0.1"
33 # Staging dir for a service deploy: the binary lands here on the daemon between
34 # the pull off the build host and the push onto the service host.
35 tempfile = "3.20"
36
37 [dev-dependencies]
38 async-trait = "0.1"
39 tempfile = "3.20"
40 tower = { version = "0.5", features = ["util"] }
41 http-body-util = "0.1"
42 reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
43 # WS client for the /events end-to-end test. No TLS backend (the test dials
44 # plaintext ws://127.0.0.1), matching the transitive copy axum's `ws` feature
45 # already compiles.
46 tokio-tungstenite = { version = "0.29", default-features = false, features = ["connect"] }
47 futures-util = "0.3"
48
49 [lints.rust]
50 unused = "warn"
51 unreachable_pub = "warn"
52
53 [lints.clippy]
54 pedantic = { level = "warn", priority = -1 }
55 # Allow-list tuned from a measured breakdown across server/multithreaded/pter
56 # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything
57 # else in `pedantic` stays a warning. Keep this block identical across repos.
58 module_name_repetitions = "allow"
59 # Doc lints. No docs-completeness push is underway.
60 missing_errors_doc = "allow"
61 missing_panics_doc = "allow"
62 doc_markdown = "allow"
63 # Numeric casts. Endemic and mostly intentional in size and byte math.
64 cast_possible_truncation = "allow"
65 cast_sign_loss = "allow"
66 cast_precision_loss = "allow"
67 cast_possible_wrap = "allow"
68 cast_lossless = "allow"
69 # Subjective structure and style nags. High churn, low signal.
70 must_use_candidate = "allow"
71 too_many_lines = "allow"
72 struct_excessive_bools = "allow"
73 similar_names = "allow"
74 items_after_statements = "allow"
75 single_match_else = "allow"
76 # Frequent false-positives in TUI and router-heavy code.
77 match_same_arms = "allow"
78 unnecessary_wraps = "allow"
79 type_complexity = "allow"
80