[package]
edition = "2021"
rust-version = "1.89"
name = "rustberg"
version = "0.0.5"
authors = ["hupe1980"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A production-grade, cross-platform, single-binary Apache Iceberg REST Catalog"
homepage = "https://hupe1980.github.io/rustberg/"
readme = "README.md"
keywords = [
"rustberg",
"iceberg",
"catalog",
"lakehouse",
"data",
]
categories = [
"database",
"web-programming",
]
license = "Apache-2.0"
repository = "https://github.com/hupe1980/rustberg"
[features]
aws-credentials = [
"aws-config",
"aws-sdk-sts",
]
aws-kms = [
"aws-config",
"aws-sdk-kms",
]
azure-kms = [
"azure_security_keyvault",
"azure_identity",
]
cli = ["clap"]
default = [
"cli",
"tls",
"slatedb-storage",
]
gcp-credentials = ["google-cloud-auth"]
gcp-kms = ["gcloud-kms"]
metrics = [
"prometheus",
"opentelemetry",
"tracing-opentelemetry",
]
rate-limiting = ["tower_governor"]
slatedb-storage = [
"slatedb",
"object_store",
]
sled-storage = ["sled"]
tls = [
"axum-server/tls-rustls",
"rcgen",
"rustls",
]
vault-kms = ["vaultrs"]
[lib]
name = "rustberg"
path = "src/lib.rs"
[[bin]]
name = "rustberg"
path = "src/main.rs"
required-features = ["cli"]
[[test]]
name = "aws_kms_tests"
path = "tests/aws_kms_tests.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "slate_catalog_tests"
path = "tests/slate_catalog_tests.rs"
[[test]]
name = "trino_integration_tests"
path = "tests/trino_integration_tests.rs"
[[test]]
name = "vault_kms_tests"
path = "tests/vault_kms_tests.rs"
[dependencies.aes-gcm]
version = "0.10"
[dependencies.argon2]
version = "0.5"
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-config]
version = "1.5"
optional = true
[dependencies.aws-sdk-kms]
version = "1.54"
optional = true
[dependencies.aws-sdk-sts]
version = "1.51"
optional = true
[dependencies.axum]
version = "0.8"
features = [
"json",
"tokio",
]
[dependencies.axum-extra]
version = "0.10"
features = ["typed-header"]
[dependencies.axum-server]
version = "0.8"
default-features = false
[dependencies.azure_identity]
version = "0.21"
optional = true
[dependencies.azure_security_keyvault]
version = "0.21"
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.cedar-policy]
version = "4.8"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
]
optional = true
[dependencies.constant_time_eq]
version = "0.3"
[dependencies.dashmap]
version = "6"
[dependencies.flate2]
version = "1.0"
[dependencies.gcloud-kms]
version = "1.4"
optional = true
[dependencies.google-cloud-auth]
version = "1.4"
optional = true
[dependencies.hex]
version = "0.4"
[dependencies.iceberg]
version = "0.8"
[dependencies.jsonwebtoken]
version = "9.3"
[dependencies.moka]
version = "0.12"
features = [
"future",
"sync",
]
[dependencies.object_store]
version = "0.12"
features = [
"aws",
"gcp",
"azure",
]
optional = true
[dependencies.openssl]
version = "0.10"
features = ["vendored"]
[dependencies.opentelemetry]
version = "0.27"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.prometheus]
version = "0.14"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.rcgen]
version = "0.13"
optional = true
[dependencies.regex]
version = "1.11"
[dependencies.reqwest]
version = "0.12"
features = [
"rustls-tls",
"json",
]
default-features = false
[dependencies.ring]
version = "0.17"
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.slatedb]
version = "0.10"
optional = true
[dependencies.sled]
version = "0.34"
optional = true
[dependencies.tar]
version = "0.4"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.toml]
version = "0.8"
[dependencies.tower-http]
version = "0.6"
features = [
"trace",
"limit",
"set-header",
"timeout",
"cors",
"request-id",
"compression-gzip",
"compression-deflate",
]
[dependencies.tower_governor]
version = "0.4"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-opentelemetry]
version = "0.27"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
[dependencies.url]
version = "2"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.validator]
version = "0.20"
features = ["derive"]
[dependencies.vaultrs]
version = "0.7"
optional = true
[dependencies.zeroize]
version = "1.8"
features = ["derive"]
[dev-dependencies.axum-test]
version = "17"
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.http]
version = "1.1"
[dev-dependencies.http-body-util]
version = "0.1"
[dev-dependencies.reqwest]
version = "0.12"
features = ["json"]
[dev-dependencies.serial_test]
version = "3.2"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.testcontainers]
version = "0.23"
[dev-dependencies.testcontainers-modules]
version = "0.11"
features = [
"hashicorp_vault",
"localstack",
]
[dev-dependencies.tokio]
version = "1"
features = [
"test-util",
"macros",
]
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true
[profile.release-debug]
debug = 2
inherits = "release"
strip = false