Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/skade

vendor/iceberg-arrow59/Cargo.toml

# iceberg-arrow59 — Apache Iceberg Rust, upstream `main` at
# apache/iceberg-rust e9c22bf7148a2fadd8dc94879371866dea89c883 (2026-10-02),
# plus skade's patches (each one a separate commit in skade, listed in
# README.md). Upstream main is ALREADY on arrow/parquet 59.2 — the arrow bump
# this fork used to carry is gone; what is left is skade's own surface.
#
# REBASED 2026-10-02 from upstream v0.9.1-rc.3 (a78bd0d) + arrow 57→59. Why
# main and not a release: iceberg-rust 0.11 is not on crates.io (rc.2 failed,
# 2026-09-18) and its branch is on arrow 58.4, so no release can serve skade's
# arrow-59 graph. Main can, and it brings what the Spark-4.1/Iceberg-1.12 CDC
# path needs: V3 deletion vectors read from Puffin (`delete_vector.rs`,
# `arrow/caching_delete_file_loader.rs`) and row lineage
# (`arrow/reader/row_lineage.rs`, `_row_id` / `_last_updated_sequence_number`).
#
# Version 0.11.0: upstream's API changed incompatibly since 0.9 (FileScanTask
# fields went private behind a builder, REST auth moved to AuthManager, ..), so
# a consumer pinned to 0.9.x must not pick this up as a compatible update.
#
# WHY a vendored, separately-PUBLISHED crate rather than a `[patch.crates-io]`
# path-fork: crates.io strips `[patch]` on publish. Publishing under a unique
# name with the library still named `iceberg` lets consumers write
# `iceberg = { package = "iceberg-arrow59", version = "0.11.0" }` and keep
# `use iceberg::…` unchanged. skade is the single canonical publisher.
# Drop it when an upstream release ships on arrow 59 AND carries (or no longer
# needs) skade's patches — then it is a plain `iceberg = "X"` everywhere.
[package]
name = "iceberg-arrow59"
version = "0.11.0"
edition = "2024"
rust-version = "1.95"
description = "Apache Iceberg Rust (apache/iceberg-rust main e9c22bf, arrow/parquet 59) plus skade's patches. Drop-in `iceberg` library (lib name unchanged); a stopgap until an upstream release ships on arrow 59."
homepage = "https://rust.iceberg.apache.org/"
repository = "https://git.gunnar.rs/nordisk/skade"
readme = "README.md"
keywords = ["iceberg"]
categories = ["database"]
license = "Apache-2.0"
# Keep the published tarball lean: bench/test fixtures stay out.
exclude = ["testdata/", "DEPENDENCIES.rust.tsv", "Cargo.toml.orig", "public-api.txt", ".nornir/", ".cargo_vcs_info.json"]

[package.metadata.cargo-machete]
ignored = ["tap"]

[features]
default = []

# The library keeps upstream's name, so downstreams `use` it unchanged —
# only the *package* name differs.
[lib]
name = "iceberg"
path = "src/lib.rs"

[dependencies]
aes-gcm = "0.10"
anyhow = "1.0.72"
apache-avro = { version = "0.21", features = ["snappy", "zstandard"] }
array-init = "2"
arrow-arith = "59.2"
arrow-array = "59.2"
arrow-buffer = "59.2"
arrow-cast = "59.2"
arrow-ord = "59.2"
arrow-schema = "59.2"
arrow-select = "59.2"
arrow-string = "59.2"
as-any = "0.3.2"
async-trait = "0.1.89"
backon = "1.5.1"
base64 = "0.22.1"
bimap = "0.6"
bytes = "1.11"
chrono = "0.4.41"
crc32fast = "1"
derive_builder = "0.20"
fastnum = { version = "0.7", features = ["std", "serde"], default-features = false }
flate2 = "1.1.5"
fnv = "1.0.7"
form_urlencoded = "1.2.2"
futures = "0.3"
iceberg-property-macro = { package = "iceberg-property-macro-arrow59", version = "0.11.0", path = "../iceberg-property-macro-arrow59" }
itertools = "0.13"
moka = { version = "0.12.10", features = ["future"] }
murmur3 = "0.5.2"
once_cell = "1.20"
ordered-float = "4"
parquet = { version = "59.2", features = ["async", "encryption"] }
rand = "0.9.3"
reqwest = { version = "0.12.12", features = ["json"], default-features = false }
roaring = "0.11.4"  # upstream says "0.11", but its DV tests call RoaringTreemap::optimize (0.11.4+)
serde = { version = "1.0.219", features = ["rc"] }
serde_bytes = "0.11.17"
serde_derive = "1.0.219"
serde_json = "1.0.142"
serde_repr = "0.1.16"
serde_with = "3.4"
strum = { version = "0.27.2", features = ["derive"] }
tokio = { version = "1.47", features = ["sync", "rt-multi-thread"], default-features = false, optional = false }
tracing = "0.1.41"
typed-builder = "0.20"
typetag = "0.2"
url = "2.5.7"
uuid = { version = "1.18", features = ["v7"] }
zeroize = "1.7"
zstd = "0.13.3"

[dev-dependencies]
expect-test = "1"
minijinja = "2.12.0"
mockall = "0.13.1"
pretty_assertions = "1.4"
rand = "0.9.3"
regex = "1.11.3"
serde_arrow = { version = "0.14", features = ["arrow-59"] }
tempfile = "3.18"

[lints.rust]
unused_qualifications = "deny"