blob: 55794a308903be520c3d224fc9522a3cfc2ea22a [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[workspace]
members = [
"bdd/rust",
"core/ai/mcp",
"core/bench",
"core/bench/dashboard/frontend",
"core/bench/dashboard/server",
"core/bench/dashboard/shared",
"core/bench/report",
"core/bench/runner",
"core/binary_protocol",
"core/cli",
"core/clock",
"core/common",
"core/configs",
"core/configs_derive",
"core/connectors/runtime",
"core/connectors/sdk",
"core/connectors/sinks/elasticsearch_sink",
"core/connectors/sinks/iceberg_sink",
"core/connectors/sinks/postgres_sink",
"core/connectors/sinks/quickwit_sink",
"core/connectors/sinks/stdout_sink",
"core/connectors/sources/elasticsearch_source",
"core/connectors/sources/postgres_source",
"core/connectors/sources/random_source",
"core/consensus",
"core/harness_derive",
"core/integration",
"core/journal",
"core/message_bus",
"core/metadata",
"core/partitions",
"core/sdk",
"core/server",
"core/simulator",
"core/tools",
"examples/rust",
]
exclude = ["foreign/python"]
resolver = "2"
[workspace.dependencies]
actix-cors = "0.7.1"
actix-files = "0.6.10"
actix-web = "4.12.1"
aes-gcm = "0.10.3"
ahash = { version = "0.8.12", features = ["serde"] }
anyhow = "1.0.101"
argon2 = "0.5.3"
arrow = "57.3.0"
arrow-array = "57.3.0"
arrow-json = "57.3.0"
assert_cmd = "2.1.2"
async-broadcast = "0.7.2"
async-channel = "2.5.0"
async-dropper = { version = "0.3.1", features = ["tokio", "simple"] }
async-trait = "0.1.89"
async_zip = { version = "0.0.18", features = [
"tokio",
"lzma",
"bzip2",
"xz",
"deflate",
"zstd",
] }
axum = { version = "0.8.8", features = ["macros"] }
axum-server = { version = "0.8.0", features = ["tls-rustls"] }
base64 = "0.22.1"
bench-dashboard-frontend = { path = "core/bench/dashboard/frontend" }
bench-dashboard-server = { path = "core/bench/dashboard/server" }
bench-dashboard-shared = { path = "core/bench/dashboard/shared" }
bench-report = { path = "core/bench/report" }
bench-runner = { path = "core/bench/runner" }
bit-set = "0.8.0"
blake3 = "1.8.3"
bon = "3.8.2"
byte-unit = { version = "5.2.0", default-features = false, features = [
"serde",
"byte",
"std",
] }
bytemuck = { version = "1.25" }
bytes = "1.11.1"
charming = "0.6.0"
chrono = { version = "0.4.43", features = ["serde"] }
clap = { version = "4.5.58", features = ["derive", "wrap_help"] }
clap_complete = "4.5.66"
clock = { path = "core/clock" }
colored = "3.1.1"
comfy-table = "7.2.2"
compio = { version = "0.18.0", features = [
"runtime",
"macros",
"io-uring",
"time",
"rustls",
"ring",
"net",
"quic",
"tls",
"ws",
"fs",
] }
# Pin compio-driver >= 0.11.2 to fix musl compilation (compio-rs/compio#668)
compio-driver = "0.11.2"
configs = { path = "core/configs", version = "0.1.0" }
configs_derive = { path = "core/configs_derive", version = "0.1.0" }
consensus = { path = "core/consensus" }
console-subscriber = "0.5.0"
crossbeam = "0.8.4"
ctor = "0.6.3"
ctrlc = { version = "3.5", features = ["termination"] }
cucumber = "0.22"
cyper = { version = "0.8.0", features = ["rustls"], default-features = false }
cyper-axum = { version = "0.8.0" }
darling = "0.23"
dashmap = "6.1.0"
derive-new = "0.7.0"
derive_builder = "0.20.2"
derive_more = { version = "2.1.1", features = ["full"] }
dircpy = "0.3.19"
dirs = "6.0.0"
dlopen2 = "0.8.2"
dotenvy = "0.15.7"
elasticsearch = { version = "9.1.0-alpha.1", features = ["rustls-tls"], default-features = false }
enum_dispatch = "0.3.13"
env_logger = "0.11.9"
err_trail = { version = "0.11.0", features = ["tracing"] }
error_set = "0.9.1"
figlet-rs = "0.1.5"
figment = { version = "0.10.19", features = ["toml", "env"] }
file-operation = "0.8.18"
flatbuffers = "25.12.19"
flume = "0.12.0"
fs2 = "0.4.3"
futures = "0.3.31"
futures-util = "0.3.31"
getrandom = { version = "0.4", features = ["wasm_js"] }
git2 = { version = "0.20.4", default-features = false, features = ["vendored-libgit2"] }
gloo = "0.11"
governor = "0.10.4"
harness_derive = { path = "core/harness_derive" }
hash32 = "1.0.0"
hostname = "0.4.2"
human-repr = "1.1.0"
humantime = "2.3.0"
hwlocality = "1.0.0-alpha.11"
iceberg = "0.8.0"
iceberg-catalog-rest = "0.8.0"
iggy = { path = "core/sdk", version = "0.9.0" }
iggy_binary_protocol = { path = "core/binary_protocol", version = "0.9.0" }
iggy_common = { path = "core/common", version = "0.9.0" }
iggy_connector_sdk = { path = "core/connectors/sdk", version = "0.2.0" }
integration = { path = "core/integration" }
journal = { path = "core/journal" }
js-sys = "0.3"
jsonwebtoken = { version = "10.3.0", features = ["rust_crypto"] }
keyring = { version = "3.6.3", features = ["sync-secret-service", "vendored"] }
lazy_static = "1.5.0"
left-right = "0.11"
lending-iterator = "0.1.7"
libc = "0.2.180"
log = "0.4.29"
lz4_flex = "0.12.0"
message_bus = { path = "core/message_bus" }
metadata = { path = "core/metadata" }
mimalloc = "0.1"
mime_guess = "2.0"
mockall = "0.14.0"
moka = { version = "0.12.13", features = ["future"] }
nix = { version = "0.31.1", features = ["fs", "resource", "sched"] }
nonzero_lit = "0.1.2"
notify = "8.2.0"
octocrab = "0.49.5"
once_cell = "1.21.3"
opentelemetry = { version = "0.31.0", features = ["trace", "logs"] }
opentelemetry-appender-tracing = { version = "0.31.1", features = ["log"] }
opentelemetry-otlp = { version = "0.31.0", features = [
"logs",
"trace",
"grpc-tonic",
"http",
"http-proto",
"reqwest-client",
] }
opentelemetry-semantic-conventions = "0.31.0"
opentelemetry_sdk = { version = "0.31.0", features = [
"logs",
"trace",
"experimental_async_runtime",
"experimental_logs_batch_log_processor_with_async_runtime",
"experimental_trace_batch_span_processor_with_async_runtime",
] }
papaya = "0.2.3"
parquet = "57.3.0"
partitions = { path = "core/partitions" }
passterm = "=2.0.1"
paste = "1.0"
postcard = { version = "1.1.3", features = ["alloc"] }
predicates = "3.1.4"
proc-macro2 = "1"
prometheus-client = "0.24.0"
prost = "0.14.3"
prost-types = "0.14.3"
protox = "0.9.1"
protox-parse = "0.9.0"
quinn = "0.11.9"
quote = "1"
rand = "0.10.0"
rand_xoshiro = "0.8.0"
rayon = "1.11.0"
rcgen = "0.14.7"
regex = "1.12.3"
reqwest = { version = "0.12.28", default-features = false, features = [
"json",
"rustls-tls",
] }
reqwest-middleware = { version = "0.4.2", features = ["json"] }
reqwest-retry = "0.8.0"
reqwest-tracing = "0.5.8"
ring = "0.17.14"
ringbuffer = "0.16.0"
rmcp = "0.15.0"
rmp-serde = "1.3.1"
rolling-file = "0.2.0"
rust-embed = "8.11.0"
rust-s3 = { version = "0.37.1", default-features = false, features = [
"tokio-rustls-tls",
"tags",
] }
rustls = { version = "0.23.36", features = ["ring"] }
rustls-pemfile = "2.2.0"
send_wrapper = "0.6.0"
serde = { version = "1.0.228", features = ["derive", "rc"] }
serde_json = "1.0.149"
serde_with = { version = "3.16.1", features = ["base64", "macros"] }
serde_yaml_ng = "0.10.0"
serial_test = "3.3.1"
server = { path = "core/server" }
simd-json = { version = "0.17.0", features = ["serde_impl"] }
slab = "0.4.12"
socket2 = "0.6.2"
sqlx = { version = "0.8.6", features = [
"runtime-tokio-rustls",
"postgres",
"chrono",
"uuid",
"json",
] }
static-toml = "1.3.0"
strum = { version = "0.27.2", features = ["derive"] }
strum_macros = "0.27.2"
syn = { version = "2", features = ["full", "extra-traits"] }
sysinfo = "0.38.1"
tempfile = "3.25.0"
test-case = "3.3.1"
testcontainers-modules = { version = "0.14.0", features = ["postgres"] }
thiserror = "2.0.18"
tokio = { version = "1.49.0", features = ["full"] }
tokio-rustls = "0.26.4"
tokio-tungstenite = { version = "0.28", features = ["rustls-tls-webpki-roots"] }
tokio-util = { version = "0.7.18", features = ["compat"] }
toml = "1.0.0"
tower-http = { version = "0.6.8", features = [
"add-extension",
"cors",
"trace",
] }
tracing = "0.1.44"
tracing-appender = "0.2.4"
tracing-opentelemetry = "0.32.1"
tracing-subscriber = { version = "0.3.22", default-features = false, features = [
"fmt",
"env-filter",
"ansi",
] }
trait-variant = "0.1.2"
tungstenite = "0.28.0"
twox-hash = { version = "2.1.2", features = ["xxhash32"] }
ulid = "1.2.1"
uuid = { version = "1.20.0", features = [
"v4",
"v7",
"fast-rng",
"serde",
"zerocopy",
] }
vergen-git2 = { version = "9.1.0", features = ["build", "cargo", "rustc", "si"] }
walkdir = "2.5.0"
wasm-bindgen = "0.2"
web-sys = { version = "0.3", features = [
"Window",
"Location",
"HtmlSelectElement",
"Clipboard",
"Navigator",
"ResizeObserver",
"ResizeObserverEntry",
] }
webpki-roots = "1.0.6"
yew = { version = "0.22", features = ["csr"] }
yew-router = "0.19"
zip = { version = "7.4.0", default-features = false, features = ["deflate"] }
[profile.release]
lto = true
codegen-units = 1
# Selectively optimize CPU-intensive dependencies in dev profile:
# - argon2: password hashing
# - twox-hash: checksum calculation
# - rand_chacha: random number generation
# - iggy_common: wrapper functions for above
# This is faster than global opt-level=1 which adds significant compile time.
[profile.dev.package.argon2]
opt-level = 3
[profile.dev.package.twox-hash]
opt-level = 3
[profile.dev.package.rand_chacha]
opt-level = 3
[profile.dev.package.iggy_common]
opt-level = 3