Skip to main content

max / makenotwork

3.4 KB · 119 lines History Blame Raw
1 [package]
2 name = "pom"
3 version = "0.4.4"
4 edition = "2024"
5 license = "LicenseRef-PolyForm-Noncommercial-1.0.0"
6
7 [lib]
8 name = "pom"
9 path = "src/lib.rs"
10
11 [[bin]]
12 name = "pom"
13 path = "src/main.rs"
14
15 [dependencies]
16 # MCP protocol
17 rmcp = { version = "2.2", features = ["server", "transport-io"] }
18
19 # CLI
20 clap = { version = "4", features = ["derive"] }
21
22 # Async runtime
23 tokio = { version = "1", features = ["rt-multi-thread", "macros", "io-std", "io-util", "process", "signal"] }
24
25 # HTTP client. `rustls-no-provider` keeps aws-lc-rs out of the tree; the process
26 # installs the ring provider (main.rs). Each client is handed a webpki-roots
27 # rustls config via use_preconfigured_tls (see crate::tls), so every outbound
28 # probe trusts the same Mozilla root set the TLS-expiry check uses.
29 reqwest = { version = "0.13", default-features = false, features = ["json", "rustls-no-provider"] }
30
31 # HTTP server (API in serve mode)
32 axum = { version = "0.8", default-features = false, features = ["json", "tokio", "http1", "query"] }
33
34 # Database
35 sqlx = { version = "0.9", features = ["runtime-tokio", "sqlite"] }
36
37 # Serialization
38 serde = { version = "1", features = ["derive"] }
39 serde_json = "1"
40 schemars = "1.2"
41
42 # Shared operator status contract (GET /status.json for the release viewer)
43 ops-status = { path = "../shared/ops-status" }
44
45 # Config
46 toml = "1.1"
47
48 # Constant-time comparison
49 subtle = "2"
50
51 # Errors
52 thiserror = "2"
53
54 # Time
55 chrono = { version = "0.4", features = ["serde"] }
56
57 # Paths
58 dirs = "6"
59
60 # Identity
61 uuid = { version = "1", features = ["v4"] }
62 hostname = "0.4"
63
64 # DNS resolution
65 hickory-resolver = "0.26"
66
67 # TLS certificate checking. Pure-Rust ring provider only, no aws-lc-rs (keeps the
68 # C/asm build dep and the aws-lc-sys advisory surface off every native build host).
69 x509-parser = "0.18"
70 rustls = { version = "0.23", default-features = false, features = ["std", "tls12", "logging", "ring"] }
71 tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "tls12", "ring"] }
72 rustls-pki-types = "1"
73 webpki-roots = "1"
74
75 # Logging
76 tracing = "0.1"
77 tracing-subscriber = { version = "0.3", features = ["env-filter"] }
78
79 # Graceful shutdown
80 tokio-util = { version = "0.7", features = ["rt"] }
81 rustls-platform-verifier = "0.7.0"
82
83 [dev-dependencies]
84 tower = { version = "0.5", features = ["util"] }
85 http-body-util = "0.1"
86 rcgen = "0.14.7"
87
88 [lints.rust]
89 unused = "warn"
90 unreachable_pub = "warn"
91
92 [lints.clippy]
93 pedantic = { level = "warn", priority = -1 }
94 # Allow-list tuned from a measured breakdown across server/multithreaded/pter
95 # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything
96 # else in `pedantic` stays a warning. Keep this block identical across repos.
97 module_name_repetitions = "allow"
98 # Doc lints. No docs-completeness push is underway.
99 missing_errors_doc = "allow"
100 missing_panics_doc = "allow"
101 doc_markdown = "allow"
102 # Numeric casts. Endemic and mostly intentional in size and byte math.
103 cast_possible_truncation = "allow"
104 cast_sign_loss = "allow"
105 cast_precision_loss = "allow"
106 cast_possible_wrap = "allow"
107 cast_lossless = "allow"
108 # Subjective structure and style nags. High churn, low signal.
109 must_use_candidate = "allow"
110 too_many_lines = "allow"
111 struct_excessive_bools = "allow"
112 similar_names = "allow"
113 items_after_statements = "allow"
114 single_match_else = "allow"
115 # Frequent false-positives in TUI and router-heavy code.
116 match_same_arms = "allow"
117 unnecessary_wraps = "allow"
118 type_complexity = "allow"
119