blob: 860ad4320204a65367391e0db96e22234e911619 [file] [log] [blame]
# 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.
[package]
name = "uniffle-x"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]]
name="uniffle-worker"
path= "src/main.rs"
[lib]
name = "uniffle_worker"
path = "src/lib.rs"
[features]
# whether to use jemalloc as the global allocator or not
jemalloc = [
"dep:tikv-jemalloc-ctl",
"dep:tikv-jemalloc-sys",
"dep:tikv-jemallocator",
]
# whether to enable memory profiling or not, once enabled, it implies using jemalloc as the global allocator
memory-prof = [
"jemalloc",
"tikv-jemallocator/profiling"
]
hdfs = [
"dep:hdfs-native"
]
[dependencies]
anyhow = "1"
tokio = { version = "1.28.2", features = ["full" ] }
tokio-rustls = "0.22"
tokio-stream = { version = "0.1", features = ["sync"] }
tokio-util = { version = "0.6", features = ["compat"]}
toml = "0.7.4"
tracing = "0.1"
tracing-appender = "0.2"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tonic = "0.9.1"
prost = "0.11.9"
bytes = "1"
tonic-build = "0.9.1"
thiserror = "1"
dashmap = "5.4.0"
log = "0.4.17"
env_logger = "0.10.0"
crossbeam = "0.8.2"
crossbeam-channel = "0.5"
tempdir = "0.3.7"
async-trait = "0.1.68"
futures = "0.3"
serde = { version = "1", features = ["derive"] }
async-channel = "1.8.0"
croaring = "0.8.1"
prometheus = { version = "0.13", features = ["process", "push"] }
crc32fast = "1.3.2"
fs2 = "0.4.3"
url = "2.4.0"
await-tree = "0.1.1"
poem = { version = "1.3.56", features = ["rustls", "test"]}
pprof = { version = "0.11.1", features = [
"flamegraph",
"protobuf-codec",
"protobuf",
] }
tempfile = "3.7.0"
once_cell = "1.18.0"
tower = { version = "0.4", features = ["util", "load-shed"] }
hyper = "0.14"
tokio-console = "0.1.8"
console-subscriber = "0.1.9"
pin-project-lite = "0.2.8"
signal-hook = "0.3.17"
clap = "3.0.14"
socket2 = { version="0.4", features = ["all"]}
cap = "0.1.2"
spin = "0.9.8"
opendal = { version = "0.44.0", features = ["services-fs"]}
[dependencies.hdfs-native]
version = "0.7.0"
optional = true
features = ["kerberos"]
# jemalloc related optional dependencies
[dependencies.tikv-jemalloc-ctl]
version = "0.5.0"
optional = true
[dependencies.tikv-jemalloc-sys]
version = "0.5.0"
optional = true
features = ["stats"]
[dependencies.tikv-jemallocator]
version = "0.5.0"
optional = true
features = ["stats"]
[build-dependencies]
tonic-build = "0.9.1"
prost-build = "0.11.9"
[dev-dependencies]
env_logger = "0.10.0"
awaitility = "0.3.1"
[profile.dev]
# re-enable debug assertions when pprof-rs fixed the reports for misaligned pointer dereferences
# https://github.com/rust-lang/rust/pull/98112/
debug-assertions = false