| 1 | [workspace] |
| 2 | resolver = "2" |
| 3 | exclude = ["jf"] |
| 4 | members = [ |
| 5 | # Individual crates |
| 6 | "journal-common", |
| 7 | "journal-core", |
| 8 | "journal-index", |
| 9 | "journal-log-writer", |
| 10 | "journal-engine", |
| 11 | "journal-registry", |
| 12 | "rdp", |
| 13 | |
| 14 | # Netdata plugin workspace members |
| 15 | "netdata-plugin/error", |
| 16 | "netdata-plugin/protocol", |
| 17 | "netdata-plugin/rt", |
| 18 | "netdata-plugin/schema", |
| 19 | "netdata-plugin/types", |
| 20 | "netdata-plugin/bridge", |
| 21 | "netdata-plugin/charts-derive", |
| 22 | |
| 23 | # Netdata log viewer workspace members |
| 24 | "netdata-log-viewer/journal-function", |
| 25 | "netdata-log-viewer/otel-signal-viewer-plugin", |
| 26 | |
| 27 | # Netdata OTEL workspace members |
| 28 | "netdata-otel/otel-plugin", |
| 29 | "netdata-otel/flatten_otel", |
| 30 | |
| 31 | # Netdata NetFlow workspace members |
| 32 | "netflow-plugin", |
| 33 | |
| 34 | # Plugin IPC library |
| 35 | "netipc", |
| 36 | ] |
| 37 | |
| 38 | [workspace.package] |
| 39 | version = "0.1.3" |
| 40 | edition = "2024" |
| 41 | rust-version = "1.85" |
| 42 | |
| 43 | [workspace.lints.clippy] |
| 44 | collapsible_if = "allow" |
| 45 | |
| 46 | [workspace.dependencies] |
| 47 | static_assertions = "1.1" |
| 48 | thiserror = "2" |
| 49 | zerocopy = { version = "0.9.0-alpha.0" } |
| 50 | libc = "0.2" |
| 51 | memmap2 = "0.9" |
| 52 | memchr = "2.7" |
| 53 | uuid = { version = "1.0"} |
| 54 | nix = { version = "0.30" } |
| 55 | |
| 56 | ruzstd = "0.8" |
| 57 | siphasher = "1.0" |
| 58 | hashers = "1.0" |
| 59 | twox-hash = { version = "2.1", default-features = false } |
| 60 | rand = "0.9" |
| 61 | lz4_flex = { version = "0.12", default-features = false, features = ["std", "safe-decode", "checked-decode"] } |
| 62 | lzma-rust2 = { version = "0.15", default-features = false, features = ["std", "xz"] } |
| 63 | md5 = "0.7" |
| 64 | |
| 65 | roaring = { git = "https://github.com/netdata/roaring-rs.git", branch="allocative" } |
| 66 | hashbrown = "0.17.0" |
| 67 | serde = { version = "1.0" } |
| 68 | rustc-hash = "2.1" |
| 69 | rmp-serde = "1.3.1" |
| 70 | notify = "8.2" |
| 71 | |
| 72 | walkdir = "2.4" |
| 73 | |
| 74 | async-stream = "0.3" |
| 75 | crossbeam-channel = "0.5" |
| 76 | regex = "1.10" |
| 77 | bitvec = "1.0.1" |
| 78 | serde_json = "1.0" |
| 79 | anyhow = "1.0" |
| 80 | arbitrary = "1.3" |
| 81 | chrono = { version = "0.4" } |
| 82 | |
| 83 | |
| 84 | async-trait = "0.1.89" |
| 85 | serde_yaml = "0.9.34" |
| 86 | serde_regex = "1.1.0" |
| 87 | tokio = { version = "1.45", features = ["full"] } |
| 88 | ipnet = "2.11.0" |
| 89 | ipnet-trie = "0.3.0" |
| 90 | |
| 91 | # Tracing |
| 92 | tracing = { version = "0.1" } |
| 93 | tracing-journald = "0.3" |
| 94 | tracing-futures = { version = "0.2.5" } |
| 95 | tracing-opentelemetry = "0.32.0" |
| 96 | tracing-subscriber = "0.3" |
| 97 | opentelemetry = "0.31.0" |
| 98 | opentelemetry_sdk = { version = "0.31.0", features = ["rt-tokio", "logs"] } |
| 99 | opentelemetry-otlp = { version = "0.31.0", features = ["grpc-tonic", "logs"] } |
| 100 | opentelemetry-proto = "0.31" |
| 101 | |
| 102 | # Netdata plugin |
| 103 | schemars = "1.0" |
| 104 | |
| 105 | # Journal histogram dependencies |
| 106 | atoi = "2.0" |
| 107 | bitflags = "2.9" |
| 108 | bytes = "1" |
| 109 | futures = "0.3" |
| 110 | phf = { version = "0.12", default-features = false } |
| 111 | phf_codegen = "0.12" |
| 112 | tokio-stream = "0.1" |
| 113 | tokio-util = { version = "0.7", features = ["codec"] } |
| 114 | foyer = { version = "0.20.0", features = ["serde"] } |
| 115 | lru = "0.16" |
| 116 | parking_lot = "0.12" |
| 117 | allocative = { version = "0.3.4" } |
| 118 | |
| 119 | hdrhistogram = { version = "7.5" } |
| 120 | rayon = "1.11.0" |
| 121 | itoa = "1.0" |
| 122 | |
| 123 | base64 = "0.22" |
| 124 | |
| 125 | # NetFlow-specific dependencies |
| 126 | jaq-core = "3.0.0" |
| 127 | jaq-json = "2.0.0" |
| 128 | jaq-std = "3.0.0" |
| 129 | maxminddb = "0.27.3" |
| 130 | netflow_parser = "0.9.0" |
| 131 | netgauze-bgp-pkt = "0.11.0" |
| 132 | netgauze-bmp-pkt = "0.11.0" |
| 133 | sflow-parser = "0.6.0" |
| 134 | reqwest = { version = "0.13.2", default-features = false } |
| 135 | socket2 = "0.6.3" |
| 136 | tonic-prost = "0.14" |
| 137 | prost = "0.14" |
| 138 | fst = "0.4.7" |
| 139 | tonic-prost-build = "0.14" |
| 140 | protoc-bin-vendored = "3" |
| 141 | etherparse = "0.20.1" |
| 142 | pcap-file = "2.0.0" |
| 143 | |
| 144 | # OTEL-specific dependencies |
| 145 | atty = "0.2" |
| 146 | bytesize = { version = "2.3.1", features = ["serde"] } |
| 147 | clap = { version = "4", features = ["derive"] } |
| 148 | duct = "0.13" |
| 149 | humantime = "2.2" |
| 150 | humantime-serde = "1.1" |
| 151 | hyper-util = "0.1" |
| 152 | indexmap = "2.9" |
| 153 | tonic = "0.14" |
| 154 | tower = "0.5" |
| 155 | |
| 156 | flatten-serde-json = { git = "https://github.com/meilisearch/meilisearch", tag = "v1.22.1" } |
| 157 | |
| 158 | # Internal workspace crates |
| 159 | journal-common = { path = "journal-common" } |
| 160 | journal-core = { path = "journal-core" } |
| 161 | journal-index = { path = "journal-index" } |
| 162 | journal-log-writer = { path = "journal-log-writer" } |
| 163 | journal-engine = { path = "journal-engine" } |
| 164 | journal-registry = { path = "journal-registry" } |
| 165 | rdp = { path = "rdp" } |
| 166 | |
| 167 | # Netdata plugin crates |
| 168 | netdata-plugin-error = { path = "netdata-plugin/error" } |
| 169 | netdata-plugin-protocol = { path = "netdata-plugin/protocol" } |
| 170 | netdata-plugin-rt = { path = "netdata-plugin/rt" } |
| 171 | netdata-plugin-schema = { path = "netdata-plugin/schema" } |
| 172 | netdata-plugin-types = { path = "netdata-plugin/types" } |
| 173 | netdata-plugin-bridge = { path = "netdata-plugin/bridge" } |
| 174 | netdata-plugin-charts-derive = { path = "netdata-plugin/charts-derive" } |
| 175 | rt = { path = "netdata-plugin/rt" } |
| 176 | |
| 177 | # Netdata log viewer crates |
| 178 | journal-function = { path = "netdata-log-viewer/journal-function" } |
| 179 | otel-signal-viewer-plugin = { path = "netdata-log-viewer/otel-signal-viewer-plugin" } |
| 180 | |
| 181 | # Netdata OTEL crates |
| 182 | otel-plugin = { path = "netdata-otel/otel-plugin" } |
| 183 | flatten_otel = { path = "netdata-otel/flatten_otel" } |
| 184 | |
| 185 | tempfile = { version = "3" } |
| 186 | |
| 187 | proptest = "1.9" |
| 188 | |
| 189 | [profile.dev] |
| 190 | opt-level = 1 |
| 191 | debug = true |
| 192 | debug-assertions = true |
| 193 | |
| 194 | [profile.release] |
| 195 | # Keep debuginfo in packaged release builds so production crashes remain symbolizable. |
| 196 | debug = true |
| 197 | opt-level = 3 |
| 198 | lto = "fat" |
| 199 | codegen-units = 1 |
| 200 | |
| 201 | [profile.release-min] |
| 202 | inherits = "release" |
| 203 | opt-level = "z" |
| 204 | lto = "fat" |
| 205 | codegen-units = 1 |
| 206 | strip = true |
| 207 | panic = "abort" |
| 208 | |
| 209 | [patch.crates-io] |
| 210 | fastant = { git = "https://github.com/netdata/fastant.git", branch = "fastant-x86-fix" } |