| # 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 |