| # 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] |
| exclude = ["python"] |
| members = ["ballista-cli", "ballista/client", "ballista/core", "ballista/executor", "ballista/scheduler", "benchmarks", "examples"] |
| resolver = "2" |
| |
| [workspace.package] |
| # edition to be changed to 2024 when we update |
| # Minimum Supported Rust Version (MSRV) to 1.85.0 |
| # which is datafusion 49s |
| # |
| edition = "2021" |
| # we should try to follow datafusion version |
| rust-version = "1.82.0" |
| |
| [workspace.dependencies] |
| arrow = { version = "55", features = ["ipc_compression"] } |
| arrow-flight = { version = "55", features = ["flight-sql-experimental"] } |
| clap = { version = "4.5", features = ["derive", "cargo"] } |
| configure_me = { version = "0.4.0" } |
| configure_me_codegen = { version = "0.4.4" } |
| datafusion = "49.0.2" |
| datafusion-cli = "49.0.2" |
| datafusion-proto = "49.0.2" |
| datafusion-proto-common = "49.0.2" |
| object_store = "0.12" |
| prost = "0.13" |
| prost-types = "0.13" |
| tonic = { version = "0.12" } |
| tonic-build = { version = "0.12", default-features = false, features = [ |
| "transport", |
| "prost" |
| ] } |
| tracing = "0.1" |
| tracing-appender = "0.2.2" |
| tracing-subscriber = { version = "0.3", features = ["env-filter"] } |
| ctor = { version = "0.5" } |
| mimalloc = { version = "0.1" } |
| |
| tokio = { version = "1" } |
| uuid = { version = "1.13", features = ["v4", "v7"] } |
| rand = { version = "0.9" } |
| env_logger = { version = "0.11" } |
| futures = { version = "0.3" } |
| log = { version = "0.4" } |
| parking_lot = { version = "0.12" } |
| tempfile = { version = "3.16" } |
| dashmap = { version = "6.1" } |
| async-trait = { version = "0.1" } |
| serde = { version = "1.0" } |
| tokio-stream = { version = "0.1" } |
| url = { version = "2.5" } |
| |
| # cargo build --profile release-lto |
| [profile.release-lto] |
| codegen-units = 1 |
| inherits = "release" |
| lto = true |
| |
| # the release profile takes a long time to build so we can use this profile during development to save time |
| # cargo build --profile release-nonlto |
| [profile.release-nonlto] |
| codegen-units = 16 |
| debug = false |
| debug-assertions = false |
| incremental = false |
| inherits = "release" |
| lto = false |
| opt-level = 3 |
| overflow-checks = false |
| panic = 'unwind' |
| rpath = false |
| |
| [profile.ci] |
| inherits = "dev" |
| incremental = false |
| |
| # ci turns off debug info, etc. for dependencies to allow for smaller binaries making caching more effective |
| [profile.ci.package."*"] |
| debug = false |
| debug-assertions = false |
| strip = "debuginfo" |
| incremental = false |