A pit full of rusty nails
1[workspace]
2resolver = "3"
3members = ["crates/*"]
4
5[workspace.package]
6authors = ["Sachy.dev <sachymetsu@tutamail.com>"]
7edition = "2024"
8repository = "https://tangled.org/sachy.dev/nailpit"
9version = "0.1.0"
10license = "AGPL-3.0-only"
11rust-version = "1.89.0"
12
13[workspace.lints.clippy]
14undocumented_unsafe_blocks = "warn"
15
16[workspace.dependencies]
17axum = { version = "0.8.1", default-features = false, features = [
18 "http1",
19 "http2",
20 "macros",
21] }
22axum-core = { version = "0.5.0", default-features = false }
23bytes = "1.10.1"
24hyper = { version = "1.6.0", default-features = false, features = ["server"] }
25color-eyre = { version = "0.6.3", default-features = false }
26serde = { version = "1.0.219", features = ["derive"] }
27rand_core = "0.10"
28rand = { version = "0.10", default-features = false }
29rand_distr = { version = "0.6" }
30wyrand = { version = "0.4" }
31hashbrown = { version = "0.15.2", default-features = false, features = [
32 "equivalent",
33 "inline-more",
34] }
35rapidhash = { version = "4.1.0", default-features = false }
36unicode-segmentation = "1.12.0"
37itertools = "0.14.0"
38indexmap = "2.9.0"
39parking_lot = "0.12"
40tokio = { version = "1.44.2", features = ["rt", "sync", "time", "parking_lot", "net", "signal"] }
41tokio-util = "0.7"
42futures-lite = "2.6.0"
43futures-concurrency = "7.6.3"
44pin-project-lite = "0.2.16"
45scc = "3.3.2"
46tracing = "0.1"
47tracing-opentelemetry = "0.32"
48tracing-futures = { version = "0.2", features = ["futures-03"] }
49tower = { version = "0.5.2" }
50tower-http = { version = "0.6.2", features = [
51 "normalize-path",
52 "add-extension",
53 "util",
54] }
55opentelemetry = { version = "0.31.0", default-features = false, features = ["trace", "logs"] }
56opentelemetry-http = "0.31"
57opentelemetry-otlp = { version = "0.31.0", default-features = false, features = [
58 "trace",
59 "logs",
60 "grpc-tonic",
61 "zstd-tonic",
62] }
63opentelemetry_sdk = { version = "0.31.0", default-features = false, features = [
64 "trace",
65 "logs",
66 "rt-tokio-current-thread",
67 "experimental_logs_batch_log_processor_with_async_runtime",
68 "experimental_trace_batch_span_processor_with_async_runtime"
69] }
70opentelemetry-semantic-conventions = "0.31"
71winnow = { version = "0.7.6", features = ["simd"] }
72
73[package]
74name = "nailpit"
75edition.workspace = true
76repository.workspace = true
77version.workspace = true
78authors.workspace = true
79rust-version.workspace = true
80license.workspace = true
81
82[lints]
83workspace = true
84
85[lib]
86path = "src/lib.rs"
87
88[[bin]]
89path = "src/main.rs"
90name = "nailpit"
91
92[features]
93default = ["mimalloc"]
94mimalloc = ["dep:mimalloc"]
95detailed_traces = ["nailgen/detailed_traces", "nailrater/detailed_traces"]
96
97[dependencies]
98nailkov = { path = "crates/nailkov" }
99nailrng = { path = "crates/nailrng" }
100nailconfig = { path = "crates/nailconfig" }
101nailstream = { path = "crates/nailstream" }
102nailgen = { path = "crates/nailgen" }
103nailrater = { path = "crates/nailrater" }
104nailtrace = { path = "crates/nailtrace" }
105nailotel = { path = "crates/nailotel" }
106nailstate = { path = "crates/nailstate" }
107nailserve = { path = "crates/nailserve" }
108nailip = { path = "crates/nailip" }
109nailroutes = { path = "crates/nailroutes" }
110nailspicy = { path = "crates/nailspicy" }
111nailnet = { path = "crates/nailnet" }
112nailbox = { path = "crates/nailbox" }
113nailrt = { path = "crates/nailrt" }
114axum.workspace = true
115tokio.workspace = true
116tokio-util.workspace = true
117tracing.workspace = true
118color-eyre.workspace = true
119glob = "0.3.2"
120mimalloc = { version = "0.1.48", features = ["v3"], optional = true }
121
122[profile.release]
123codegen-units = 1
124lto = "fat"
125debug = false
126panic = "abort"
127strip = true