[package]
categories = ["database"]
description = "The rust implementation of Apache Paimon"
documentation = "https://docs.rs/paimon"
name = "paimon"
exclude = ["testdata/"]
homepage.workspace = true
repository.workspace = true
edition.workspace = true
license.workspace = true
version.workspace = true
[features]
default = ["storage-memory", "storage-fs", "storage-oss"]
storage-all = ["storage-memory", "storage-fs", "storage-oss", "storage-s3", "storage-hdfs"]
fulltext = ["tantivy", "tempfile"]
vortex = ["dep:vortex", "dep:kanal"]
storage-memory = ["opendal/services-memory"]
storage-fs = ["opendal/services-fs"]
storage-oss = ["opendal/services-oss"]
storage-s3 = ["opendal/services-s3"]
storage-hdfs = ["opendal/services-hdfs-native"]
[dependencies]
url = "2.5.2"
async-trait = "0.1.81"
bytes = "1.7.1"
bitflags = "2.6.0"
tokio = { version = "1.39.2", features = ["macros"] }
chrono = { version = "0.4.38", features = ["serde"] }
serde = { version = "1", features = ["derive"] }
serde_bytes = "0.11.15"
serde_json = "1.0.120"
serde_with = "3.9.0"
serde_repr = "0.1"
snafu = "0.9.0"
typed-builder = "^0.19"
opendal = { version = "0.55", features = ["services-fs"] }
pretty_assertions = "1"
apache-avro = { version = "0.21", features = ["snappy", "zstandard"] }
indexmap = "2.5.0"
roaring = "0.11"
crc32fast = "1"
zstd = "0.13"
snap = "1"
arrow-array = { workspace = true }
arrow-buffer = { workspace = true }
arrow-cast = { workspace = true }
arrow-ord = { workspace = true }
arrow-row = { workspace = true }
arrow-schema = { workspace = true }
arrow-select = { workspace = true }
futures = "0.3"
tokio-util = { workspace = true, features = ["compat"] }
parquet = { workspace = true, features = ["async", "zstd", "lz4", "snap"] }
orc-rust = "0.8.0"
async-stream = "0.3.6"
reqwest = { version = "0.12", features = ["json"] }
base64 = "0.22"
hex = "0.4"
hmac = "0.12"
sha1 = "0.10"
sha2 = "0.10"
md-5 = "0.10"
regex = "1"
uuid = { version = "1", features = ["v4"] }
urlencoding = "2.1"
tantivy = { version = "0.22", optional = true }
tempfile = { version = "3", optional = true }
vortex = { version = "0.68", features = ["tokio"], optional = true }
kanal = { version = "0.1.1", optional = true }
libloading = "0.8"
[dev-dependencies]
axum = { version = "0.7", features = ["macros", "tokio", "http1", "http2"] }
rand = "0.8.5"
tempfile = "3"