| # 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 = [ |
| "crates/*", |
| "cpp", |
| "python", |
| "benchmark/tpch", |
| "benchmark/filegroup", |
| ] |
| resolver = "3" |
| |
| [workspace.package] |
| version = "0.6.0-dev" |
| edition = "2024" |
| license = "Apache-2.0" |
| rust-version = "1.94.1" |
| keywords = ["apachehudi", "hudi", "datalake", "arrow"] |
| readme = "README.md" |
| description = "The native Rust implementation for Apache Hudi" |
| homepage = "https://github.com/apache/hudi-rs" |
| repository = "https://github.com/apache/hudi-rs" |
| |
| [workspace.dependencies] |
| # arrow |
| arrow = { version = "58" } |
| arrow-arith = { version = "58" } |
| arrow-array = { version = "58" } |
| arrow-buffer = { version = "58" } |
| arrow-cast = { version = "58" } |
| arrow-ipc = { version = "58" } |
| arrow-json = { version = "58" } |
| arrow-ord = { version = "58" } |
| arrow-row = { version = "58" } |
| arrow-schema = { version = "58", features = ["serde"] } |
| arrow-select = { version = "58" } |
| object_store = { version = "0.13.2", features = ["aws", "azure", "gcp"] } |
| parquet = { version = "58", features = ["async", "object_store"] } |
| |
| # avro |
| arrow-avro = { version = "58" } |
| apache-avro = { version = "0.21", features = ["derive"] } |
| apache-avro-derive = { version = "0.21" } |
| |
| # datafusion |
| datafusion = { version = "54.1" } |
| datafusion-expr = { version = "54.1" } |
| datafusion-common = { version = "54.1" } |
| datafusion-physical-expr = { version = "54.1" } |
| datafusion-ffi = { version = "54.1" } |
| |
| # serde |
| percent-encoding = { version = "2" } |
| serde = { version = "1", features = ["derive"] } |
| serde_json = { version = "1" } |
| |
| # "stdlib" |
| thiserror = { version = "2" } |
| bytes = { version = "1" } |
| chrono = { version = "0.4" } |
| chrono-tz = { version = "0.10" } |
| lazy_static = { version = "1" } |
| log = { version = "0.4" } |
| log-once = { version = "0.4" } |
| num-traits = { version = "0.2" } |
| once_cell = { version = "1" } |
| paste = { version = "1" } |
| strum = { version = "0.28", features = ["derive"] } |
| strum_macros = { version = "0.28" } |
| url = { version = "2" } |
| |
| # runtime / async |
| async-recursion = { version = "1" } |
| async-trait = { version = "0.1" } |
| dashmap = { version = "6" } |
| futures = { version = "0.3" } |
| tokio = { version = "1", features = ["rt-multi-thread", "sync"] } |
| |
| # protobuf |
| prost = { version = "0.14" } |
| |
| # record positions: log blocks store them as a base64-encoded roaring bitmap |
| base64 = { version = "0.23" } |
| # Spill backend for the merge-on-read merge map, behind hudi-core's default-on |
| # `spill-rocksdb` feature: it bundles RocksDB 8.10 and needs libclang to build |
| # (bindgen), which every consumer would otherwise pay for — including the Python |
| # wheel and the cxx bridge — for a disk tier that only engages on spill. |
| # Licenses: rocksdb Apache-2.0; librocksdb-sys MIT/Apache-2.0/BSD-3-Clause. |
| rocksdb = { version = "0.22" } |
| # Fast hasher for the merge map (folded multiply, no hardware-AES dependency). |
| foldhash = { version = "0.2" } |
| roaring = { version = "0.11" } |
| |
| # compression |
| flate2 = { version = "1" } |
| |
| # testing |
| serial_test = { version = "4" } |
| tempfile = { version = "3" } |
| zip = { version = "8", default-features = false, features = ["deflate"] } |