Skip to main content

max / makenotwork

3.4 KB · 88 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-artifact = { path = "../../shared/ops-artifact" }
13 ops-core = { path = "../../shared/ops-core" }
14 ops-status = { path = "../../shared/ops-status" }
15 ops-exec = { path = "../../shared/ops-exec", features = ["rpc"] }
16 axum = { version = "0.8.8", features = ["macros", "ws"] }
17 tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "net", "signal", "fs", "process", "sync", "io-util"] }
18 tokio-stream = "0.1"
19 serde = { version = "1.0.228", features = ["derive"] }
20 serde_json = "1"
21 toml = "1.1"
22 sqlx = { version = "0.9", features = ["runtime-tokio", "sqlite", "chrono", "migrate"] }
23 rhai = { version = "1.20", features = ["sync"] }
24 tracing = "0.1.44"
25 tracing-subscriber = { version = "0.3.22", features = ["env-filter", "json"] }
26 metrics = "0.24"
27 metrics-exporter-prometheus = { version = "0.18.1", default-features = false }
28 anyhow = "1.0.102"
29 thiserror = "2.0.18"
30 chrono = { version = "0.4", features = ["serde"] }
31 semver = { version = "1.0", features = ["serde"] }
32 sha2 = "0.10"
33 async-trait = "0.1"
34 # Staging dir for a service deploy: the binary lands here on the daemon between
35 # the pull off the build host and the push onto the service host.
36 tempfile = "3.20"
37 # Reads MNW's public OTA endpoint to answer whether a built version is actually
38 # downloadable. rustls rather than native-tls to keep the TLS stack the same one
39 # every other crate here links.
40 # `rustls-no-provider` rather than `rustls`: the latter is an alias for
41 # `__rustls-aws-lc-rs`, which links a C crypto backend. The provider is ring
42 # (pure Rust), installed process-wide by `crate::tls` before any client is built.
43 reqwest = { version = "0.13", default-features = false, features = ["json", "rustls-no-provider"] }
44 rustls = { version = "0.23", default-features = false, features = ["std", "tls12", "logging", "ring"] }
45
46 [dev-dependencies]
47 async-trait = "0.1"
48 tempfile = "3.20"
49 tower = { version = "0.5", features = ["util"] }
50 http-body-util = "0.1"
51 # WS client for the /events end-to-end test. No TLS backend (the test dials
52 # plaintext ws://127.0.0.1), matching the transitive copy axum's `ws` feature
53 # already compiles.
54 tokio-tungstenite = { version = "0.29", default-features = false, features = ["connect"] }
55 futures-util = "0.3"
56
57 [lints.rust]
58 unused = "warn"
59 unreachable_pub = "warn"
60
61 [lints.clippy]
62 pedantic = { level = "warn", priority = -1 }
63 # Allow-list tuned from a measured breakdown across server/multithreaded/pter
64 # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything
65 # else in `pedantic` stays a warning. Keep this block identical across repos.
66 module_name_repetitions = "allow"
67 # Doc lints. No docs-completeness push is underway.
68 missing_errors_doc = "allow"
69 missing_panics_doc = "allow"
70 doc_markdown = "allow"
71 # Numeric casts. Endemic and mostly intentional in size and byte math.
72 cast_possible_truncation = "allow"
73 cast_sign_loss = "allow"
74 cast_precision_loss = "allow"
75 cast_possible_wrap = "allow"
76 cast_lossless = "allow"
77 # Subjective structure and style nags. High churn, low signal.
78 must_use_candidate = "allow"
79 too_many_lines = "allow"
80 struct_excessive_bools = "allow"
81 similar_names = "allow"
82 items_after_statements = "allow"
83 single_match_else = "allow"
84 # Frequent false-positives in TUI and router-heavy code.
85 match_same_arms = "allow"
86 unnecessary_wraps = "allow"
87 type_complexity = "allow"
88