diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8581bf19c2..47d3022617 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -25,6 +25,13 @@ updates: day: "sunday" cooldown: default-days: 7 + groups: + # The codeql-action init/autobuild/analyze steps must all run the + # same version - split PRs cause a version mismatch that fails the + # Analyze jobs. Group them so a single PR bumps all of them together. + codeql-action: + patterns: + - "github/codeql-action*" # Maintain dependencies for iceberg - package-ecosystem: "cargo" diff --git a/.github/workflows/bindings_python_ci.yml b/.github/workflows/bindings_python_ci.yml index 6980eb909a..d8d88bdee2 100644 --- a/.github/workflows/bindings_python_ci.yml +++ b/.github/workflows/bindings_python_ci.yml @@ -50,7 +50,7 @@ jobs: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 + - uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0 with: version: "0.9.3" enable-cache: true @@ -97,7 +97,7 @@ jobs: working-directory: "bindings/python" command: build args: --out dist -i python3.12 # Explicitly set interpreter; manylinux containers have multiple Pythons and maturin may pick an older one - - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 + - uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0 with: version: "0.9.3" enable-cache: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d3c1713484..9407fea982 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: - name: Install lint tools # Keep versions in sync with the local install targets in Makefile. - uses: taiki-e/install-action@9e1e5806d4a4822de933115878265be9aaa786d9 # v2.82.2 + uses: taiki-e/install-action@4684b8405694ae9dd42c9f39ba901a70ae83f4a3 # v2.82.9 with: tool: taplo@0.9.3,cargo-machete@0.7.0 @@ -79,7 +79,7 @@ jobs: run: cargo machete - name: Check typos - uses: crate-ci/typos@37bb98842b0d8c4ffebdb75301a13db0267cef89 # v1.47.2 + uses: crate-ci/typos@bee27e3a4fd1ea2111cf90ab89cd076c870fce14 # v1.48.0 clippy: needs: lint @@ -92,11 +92,6 @@ jobs: - name: Setup Rust toolchain uses: ./.github/actions/setup-builder - - name: Install protoc - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Cargo clippy run: make check-clippy @@ -126,11 +121,6 @@ jobs: with: save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - - name: Install protoc - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Build run: make build @@ -152,11 +142,6 @@ jobs: with: save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - - name: Install protoc - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Check each crate standalone run: | for pkg in $(cargo metadata --no-deps --format-version=1 | jq -r '.packages[].name'); do @@ -216,11 +201,6 @@ jobs: - name: Setup Rust toolchain uses: ./.github/actions/setup-builder - - name: Install protoc - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Cache Rust artifacts uses: swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 with: @@ -229,7 +209,7 @@ jobs: - name: Install cargo-nextest if: matrix.test-suite.name == 'default' - uses: taiki-e/install-action@bffeee26d4db9be238a4ea78d8826604ebcb594d # v2.82.5 + uses: taiki-e/install-action@4684b8405694ae9dd42c9f39ba901a70ae83f4a3 # v2.82.9 with: tool: cargo-nextest @@ -264,10 +244,6 @@ jobs: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - - name: Install protoc - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Get MSRV id: get-msrv uses: ./.github/actions/get-msrv diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9b7b204e92..10f5985f87 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -46,11 +46,11 @@ jobs: persist-credentials: false - name: Initialize CodeQL - uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 + uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4.36.3 with: languages: actions - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 + uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4.36.3 with: category: "/language:actions" diff --git a/.github/workflows/public-api.yml b/.github/workflows/public-api.yml index f5149d30d4..1c19d5388b 100644 --- a/.github/workflows/public-api.yml +++ b/.github/workflows/public-api.yml @@ -48,15 +48,5 @@ jobs: with: save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - - name: Install protoc - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Install cargo-public-api - uses: taiki-e/install-action@bffeee26d4db9be238a4ea78d8826604ebcb594d # v2.82.5 - with: - tool: cargo-public-api - - name: Check public API run: make check-public-api diff --git a/.github/workflows/release_python.yml b/.github/workflows/release_python.yml index f8d723b628..74d37f1b08 100644 --- a/.github/workflows/release_python.yml +++ b/.github/workflows/release_python.yml @@ -187,7 +187,7 @@ jobs: working-directory: "bindings/python" command: build args: --release -o dist -i python3.12 # Explicitly set interpreter; manylinux containers have multiple Pythons and maturin may pick an older one - - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 + - uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0 with: version: "0.9.3" enable-cache: true diff --git a/.github/workflows/release_python_nightly.yml b/.github/workflows/release_python_nightly.yml index 07d4378a50..3c30672961 100644 --- a/.github/workflows/release_python_nightly.yml +++ b/.github/workflows/release_python_nightly.yml @@ -124,7 +124,7 @@ jobs: command: build args: --release -o dist -i python3.12 # Explicitly set interpreter; manylinux containers have multiple Pythons and maturin may pick an older one - - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 + - uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3 # v8.3.0 with: version: "0.9.3" enable-cache: true diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index f9bc9db79c..e2a11a5261 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -48,11 +48,6 @@ jobs: with: mdbook-version: "0.4.36" - - name: Install protoc - uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Build working-directory: website run: mdbook build diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c43de2833..ff01f2323a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/) and this project adheres to [Semantic Versioning](https://semver.org/). -## [v0.10.0] - 2026-07-07 +## [v0.10.0] - 2026-07-14 ### Breaking Changes @@ -288,6 +288,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/). * Fix zizmor pin by @blackmwk in https://github.com/apache/iceberg-rust/pull/2762 * feat(encryption) [8/N] Read encrypted manifest file by @xanderbailey in https://github.com/apache/iceberg-rust/pull/2586 * Reject negative positional delete positions by @fallintoplace in https://github.com/apache/iceberg-rust/pull/2631 +* chore: Update changelog for 0.10.0 by @dannycjones in https://github.com/apache/iceberg-rust/pull/2782 +* chore(refactor): rename SnapshotProducer::manifest_file to produce_manifest_file_list by @dannycjones in https://github.com/apache/iceberg-rust/pull/2596 +* chore(deps): Bump DataFusion to 54.0.0 by @xanderbailey in https://github.com/apache/iceberg-rust/pull/2648 +* fix(reader): keep rows with a null equality-delete column value by @mbutrovich in https://github.com/apache/iceberg-rust/pull/2781 +* feat(catalog-rest): parse server-advertised endpoints from GET /v1/config by @huan233usc in https://github.com/apache/iceberg-rust/pull/2692 +* fix(spec): support float/double conversion in Datum::to() by @mbutrovich in https://github.com/apache/iceberg-rust/pull/2783 +* feat(encryption): [11/N] KMS factory trait and catalog wiring by @xanderbailey in https://github.com/apache/iceberg-rust/pull/2650 +* ci: fix the cargo-public-api double install by @abnobdoss in https://github.com/apache/iceberg-rust/pull/2793 +* ci: drop unnecessary protoc installs by @abnobdoss in https://github.com/apache/iceberg-rust/pull/2805 +* Infra: Group github/codeql-action bumps into a single dependabot PR by @ebyhr in https://github.com/apache/iceberg-rust/pull/2800 +* chore(deps): Bump rand from 0.9.4 to 0.10.2 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/2818 +* chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/2810 +* chore(deps): Bump taiki-e/install-action from 2.82.2 to 2.82.9 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/2816 +* chore(deps): Bump astral-sh/setup-uv from 8.2.0 to 8.3.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/2817 +* chore(deps-dev): Bump huggingface-hub from 1.21.0 to 1.22.0 in /bindings/python by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/2806 +* chore(deps): Bump crate-ci/typos from 1.47.2 to 1.48.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/2809 +* chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/2808 +* fix(arrow): error on required field absent from data file with no default by @mbutrovich in https://github.com/apache/iceberg-rust/pull/2797 +* chore(deps-dev): Bump datafusion from 52.3.0 to 54.0.0 in /bindings/python by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/2807 +* docs: improve ancestors_between docs to make behaviour more clear by @xanderbailey in https://github.com/apache/iceberg-rust/pull/2796 +* Include license and notice files in iceberg-storage-opendal crate by @ankane in https://github.com/apache/iceberg-rust/pull/2823 +* fix(license): Add missing LICENSE and NOTICE symlinks for iceberg-cache-moka and iceberg-catalog-loader by @dannycjones in https://github.com/apache/iceberg-rust/pull/2828 ## [v0.9.0] - 2026-03-10 diff --git a/Cargo.lock b/Cargo.lock index 4735572e97..3cad6747c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,54 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "abi_stable" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d6512d3eb05ffe5004c59c206de7f99c34951504056ce23fc953842f12c445" -dependencies = [ - "abi_stable_derive", - "abi_stable_shared", - "const_panic", - "core_extensions", - "crossbeam-channel", - "generational-arena", - "libloading", - "lock_api", - "parking_lot", - "paste", - "repr_offset", - "rustc_version", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "abi_stable_derive" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7178468b407a4ee10e881bc7a328a65e739f0863615cca4429d43916b05e898" -dependencies = [ - "abi_stable_shared", - "as_derive_utils", - "core_extensions", - "proc-macro2", - "quote", - "rustc_version", - "syn 1.0.109", - "typed-arena", -] - -[[package]] -name = "abi_stable_shared" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b5df7688c123e63f4d4d649cba63f2967ba7f7861b1664fca3f77d3dad2b63" -dependencies = [ - "core_extensions", -] - [[package]] name = "adler2" version = "2.0.1" @@ -123,9 +75,9 @@ checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" [[package]] name = "alloc-stdlib" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" dependencies = [ "alloc-no-stdlib", ] @@ -145,21 +97,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse 0.2.7", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - [[package]] name = "anstream" version = "1.0.0" @@ -167,7 +104,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", - "anstyle-parse 1.0.0", + "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", @@ -181,15 +118,6 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - [[package]] name = "anstyle-parse" version = "1.0.0" @@ -205,7 +133,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -216,7 +144,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -233,22 +161,20 @@ checksum = "36fa98bc79671c7981272d91a8753a928ff6a1cd8e4f20a44c45bd5d313840bf" dependencies = [ "bigdecimal", "bon", - "bzip2", "crc32fast", "digest 0.10.7", - "liblzma", "log", "miniz_oxide", "num-bigint", "quad-rand", - "rand 0.9.4", + "rand 0.9.5", "regex-lite", "serde", "serde_bytes", "serde_json", "snap", "strum", - "strum_macros", + "strum_macros 0.27.2", "thiserror 2.0.18", "uuid", "zstd", @@ -265,13 +191,22 @@ dependencies = [ [[package]] name = "ar_archive_writer" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb93bbb63b9c227414f6eb3a0adfddca591a8ce1e9b60661bb08969b87e340b" +checksum = "4087686b4b0a3427190bae57a1d9a478dbb2d40c5dc1bd6e2b6d797913bdd348" dependencies = [ "object", ] +[[package]] +name = "arc-swap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" +dependencies = [ + "rustversion", +] + [[package]] name = "array-init" version = "2.1.0" @@ -286,15 +221,15 @@ checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.6" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" [[package]] name = "arrow" -version = "58.1.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d441fdda254b65f3e9025910eb2c2066b6295d9c8ed409522b8d2ace1ff8574c" +checksum = "378530e55cd479eda3c14eb345310799717e6f76d0c332041e8487022166b471" dependencies = [ "arrow-arith", "arrow-array", @@ -345,6 +280,30 @@ dependencies = [ "num-traits", ] +[[package]] +name = "arrow-avro" +version = "58.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "049230728cd6e093088c8d231b4beede184e35cad7777c1505c0d5a8571f4376" +dependencies = [ + "arrow-array", + "arrow-buffer", + "arrow-schema", + "bytes", + "bzip2", + "crc", + "flate2", + "indexmap 2.14.0", + "liblzma", + "rand 0.9.5", + "serde", + "serde_json", + "snap", + "strum_macros 0.28.0", + "uuid", + "zstd", +] + [[package]] name = "arrow-buffer" version = "58.3.0" @@ -381,9 +340,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "58.1.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca025bd0f38eeecb57c2153c0123b960494138e6a957bbda10da2b25415209fe" +checksum = "e94e8cf7e517657a52b91ea1263acf38c4ca62a84655d72458a3359b12ab97de" dependencies = [ "arrow-array", "arrow-cast", @@ -409,9 +368,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "58.1.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "609a441080e338147a84e8e6904b6da482cefb957c5cdc0f3398872f69a315d0" +checksum = "238438f0834483703d88896db6fe5a7138b2230debc31b34c0336c2996e3c64f" dependencies = [ "arrow-array", "arrow-buffer", @@ -425,18 +384,19 @@ dependencies = [ [[package]] name = "arrow-json" -version = "58.1.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ead0914e4861a531be48fe05858265cf854a4880b9ed12618b1d08cba9bebc8" +checksum = "205ca2119e6d679d5c133c6f30e68f027738d95ed948cf77677ea69c7800036b" dependencies = [ "arrow-array", "arrow-buffer", "arrow-cast", - "arrow-data", + "arrow-ord", "arrow-schema", + "arrow-select", "chrono", "half", - "indexmap 2.13.0", + "indexmap 2.14.0", "itoa", "lexical-core", "memchr", @@ -474,9 +434,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "58.1.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14fe367802f16d7668163ff647830258e6e0aeea9a4d79aaedf273af3bdcd3e" +checksum = "bab5994731204603c73ba69267616c50f80780774c6bb0476f1f830625115e0c" dependencies = [ "arrow-array", "arrow-buffer", @@ -491,7 +451,7 @@ version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f633dbfdf39c039ada1bf9e34c694816eb71fbb7dc78f613993b7245e078a1ed" dependencies = [ - "bitflags", + "bitflags 2.13.0", "serde_core", "serde_json", ] @@ -533,18 +493,6 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063" -[[package]] -name = "as_derive_utils" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff3c96645900a44cf11941c111bd08a6573b0e2f9f69bc9264b179d8fae753c4" -dependencies = [ - "core_extensions", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "assert-json-diff" version = "2.0.2" @@ -569,9 +517,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" +checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac" dependencies = [ "compression-codecs", "compression-core", @@ -584,9 +532,6 @@ name = "async-ffi" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4de21c0feef7e5a556e51af767c953f0501f7f300ba785cc99c47bdc8081a50" -dependencies = [ - "abi_stable", -] [[package]] name = "async-lock" @@ -607,7 +552,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -618,7 +563,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -638,15 +583,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "aws-config" -version = "1.8.15" +version = "1.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11493b0bad143270fb8ad284a096dd529ba91924c5409adeac856cc1bf047dbc" +checksum = "e33f815b73a3899c03b380d543532e5865f230dce9678d108dc10732a8682275" dependencies = [ "aws-credential-types", "aws-runtime", @@ -654,17 +599,18 @@ dependencies = [ "aws-sdk-ssooidc", "aws-sdk-sts", "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", + "aws-smithy-schema 0.1.0", "aws-smithy-types", "aws-types", "bytes", "fastrand", "hex", - "http 1.4.0", - "sha1", + "http 1.4.2", + "sha1 0.10.6", "time", "tokio", "tracing", @@ -686,37 +632,37 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.16.2" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" +checksum = "4342d8937fc7e5dd9b1c60292261c0670c882a2cd1719cfc11b1af41731e32ad" dependencies = [ "aws-lc-sys", - "untrusted 0.7.1", "zeroize", ] [[package]] name = "aws-lc-sys" -version = "0.39.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa7e52a4c5c547c741610a2c6f123f3881e409b714cd27e6798ef020c514f0a" +checksum = "6d9ceb1da931507a12f4fccea479dccd00da1943e1b4ae72d8e502d707361444" dependencies = [ "cc", "cmake", "dunce", "fs_extra", + "pkg-config", ] [[package]] name = "aws-runtime" -version = "1.7.2" +version = "1.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc0651c57e384202e47153c1260b84a9936e19803d747615edf199dc3b98d17" +checksum = "6c9b9de216a988dd54b754a82a7660cfe14cee4f6782ae4524470972fa0ccb39" dependencies = [ "aws-credential-types", "aws-sigv4", "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -724,7 +670,7 @@ dependencies = [ "bytes", "bytes-utils", "fastrand", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", "percent-encoding", "pin-project-lite", @@ -734,16 +680,17 @@ dependencies = [ [[package]] name = "aws-sdk-glue" -version = "1.142.1" +version = "1.153.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc77647907307c70ffd751db85653804552e4a3c27f054d3af7a0874ef4dfe22" +checksum = "48b33661f9c0b02b6c23d42646f43ea9eab6db37fdcbd80f85fabe72a70b9d8e" dependencies = [ + "arc-swap", "aws-credential-types", "aws-runtime", "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-json", - "aws-smithy-observability", + "aws-smithy-observability 0.2.6", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -751,23 +698,24 @@ dependencies = [ "bytes", "fastrand", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-s3tables" -version = "1.54.0" +version = "1.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0ec266873694efc365debded01f44e27a0de3946a3ac15d24c489759e5ddf8" +checksum = "ebf4f0e9ec9c0cd8f978b0672086924c1b6c4c19776773bf1a6f0020d24c954d" dependencies = [ + "arc-swap", "aws-credential-types", "aws-runtime", "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-json", - "aws-smithy-observability", + "aws-smithy-observability 0.2.6", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -775,23 +723,24 @@ dependencies = [ "bytes", "fastrand", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-sso" -version = "1.97.0" +version = "1.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aadc669e184501caaa6beafb28c6267fc1baef0810fb58f9b205485ca3f2567" +checksum = "8c82b3ac19f1431854f7ace3a7531674633e286bfdde21976893bfee36fd493b" dependencies = [ + "arc-swap", "aws-credential-types", "aws-runtime", "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-json", - "aws-smithy-observability", + "aws-smithy-observability 0.2.6", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -799,23 +748,24 @@ dependencies = [ "bytes", "fastrand", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-ssooidc" -version = "1.99.0" +version = "1.104.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1342a7db8f358d3de0aed2007a0b54e875458e39848d54cc1d46700b2bfcb0a8" +checksum = "321000d2b4c5519ee573f73167f612efd7329322d9b26969ad1979f0427f1913" dependencies = [ + "arc-swap", "aws-credential-types", "aws-runtime", "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-json", - "aws-smithy-observability", + "aws-smithy-observability 0.2.6", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -823,23 +773,24 @@ dependencies = [ "bytes", "fastrand", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-sts" -version = "1.101.0" +version = "1.107.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab41ad64e4051ecabeea802d6a17845a91e83287e1dd249e6963ea1ba78c428a" +checksum = "3d0d328ba962af23ecfa3c9f23b98d3d35e325fa218d7f13d17a6bf522f8a560" dependencies = [ + "arc-swap", "aws-credential-types", "aws-runtime", "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-json", - "aws-smithy-observability", + "aws-smithy-observability 0.2.6", "aws-smithy-query", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -848,38 +799,38 @@ dependencies = [ "aws-types", "fastrand", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "regex-lite", "tracing", ] [[package]] name = "aws-sigv4" -version = "1.4.2" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0b660013a6683ab23797778e21f1f854744fdf05f68204b4cca4c8c04b5d1f4" +checksum = "bae38512beae0ffee7010fc24e7a8a123c53efdfef42a61e80fda4882418dc71" dependencies = [ "aws-credential-types", - "aws-smithy-http", + "aws-smithy-http 0.63.6", "aws-smithy-runtime-api", "aws-smithy-types", "bytes", "form_urlencoded", "hex", - "hmac", + "hmac 0.13.0", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "percent-encoding", - "sha2", + "sha2 0.11.0", "time", "tracing", ] [[package]] name = "aws-smithy-async" -version = "1.2.14" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffcaf626bdda484571968400c326a244598634dc75fd451325a54ad1a59acfc" +checksum = "f02e407fb3b54891734224b9ffac8a71fdd35f542500fa1af95754a6b2beb316" dependencies = [ "futures-util", "pin-project-lite", @@ -898,7 +849,28 @@ dependencies = [ "bytes-utils", "futures-core", "futures-util", - "http 1.4.0", + "http 1.4.2", + "http-body 1.0.1", + "http-body-util", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-http" +version = "0.64.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37843d9add67c3aff5856f409c6dc315d3cdff60f9c0cb5b670dab1e9920306d" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "futures-util", + "http 1.4.2", "http-body 1.0.1", "http-body-util", "percent-encoding", @@ -909,15 +881,15 @@ dependencies = [ [[package]] name = "aws-smithy-http-client" -version = "1.1.12" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a2f165a7feee6f263028b899d0a181987f4fa7179a6411a32a439fba7c5f769" +checksum = "635d23afda0a6ab48d666c4d447c4873e8d1e83518a2be2093122397e50b838e" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", "h2", - "http 1.4.0", + "http 1.4.2", "hyper", "hyper-rustls", "hyper-util", @@ -933,10 +905,12 @@ dependencies = [ [[package]] name = "aws-smithy-json" -version = "0.62.5" +version = "0.62.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9648b0bb82a2eedd844052c6ad2a1a822d1f8e3adee5fbf668366717e428856a" +checksum = "701a947f4797e52a911e114a898667c746c39feea467bbd1abd7b3721f702ffa" dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-schema 0.1.0", "aws-smithy-types", ] @@ -949,6 +923,15 @@ dependencies = [ "aws-smithy-runtime-api", ] +[[package]] +name = "aws-smithy-observability" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e86338c869539a581bf161247762a6e87f92c5c075060057b5ed6d06632ed0c" +dependencies = [ + "aws-smithy-runtime-api", +] + [[package]] name = "aws-smithy-query" version = "0.60.15" @@ -961,20 +944,21 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.10.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028999056d2d2fd58a697232f9eec4a643cf73a71cf327690a7edad1d2af2110" +checksum = "bea94a9ff8464016338c851e24b472d7131c388c88898a502e781815b2ee6045" dependencies = [ "aws-smithy-async", - "aws-smithy-http", + "aws-smithy-http 0.64.0", "aws-smithy-http-client", - "aws-smithy-observability", + "aws-smithy-observability 0.3.0", "aws-smithy-runtime-api", + "aws-smithy-schema 0.2.0", "aws-smithy-types", "bytes", "fastrand", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "http-body 0.4.6", "http-body 1.0.1", "http-body-util", @@ -986,33 +970,67 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.11.6" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876ab3c9c29791ba4ba02b780a3049e21ec63dabda09268b175272c3733a79e6" +checksum = "22ed1ebe6e0a95ea84570225f5a8208dec4b8f77e61a9b0d6f51773fcb4612f0" dependencies = [ "aws-smithy-async", + "aws-smithy-runtime-api-macros", "aws-smithy-types", "bytes", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "pin-project-lite", "tokio", "tracing", "zeroize", ] +[[package]] +name = "aws-smithy-runtime-api-macros" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221eaa237ddf1ca79b60d1372aad77e47f9c0ea5b3ce5099da8c61d027dc77b3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "aws-smithy-schema" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7442cb268338f0eb8278140a107c046756aa01093d8ef5e99628d34ae09c94f5" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "http 1.4.2", +] + +[[package]] +name = "aws-smithy-schema" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56e0a4e53127a632224e43633b0fe045fa9e1e3cfc68b9830f1115e103f910" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "http 1.4.2", +] + [[package]] name = "aws-smithy-types" -version = "1.4.7" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d73dbfbaa8e4bc57b9045137680b958d274823509a360abfd8e1d514d40c95c" +checksum = "d6dc683efb34b9e755675b37fedbe0103141e5b6df7bdc9eb6967756a8c167d8" dependencies = [ "base64-simd", "bytes", "bytes-utils", "futures-core", "http 0.2.12", - "http 1.4.0", + "http 1.4.2", "http-body 0.4.6", "http-body 1.0.1", "http-body-util", @@ -1038,13 +1056,14 @@ dependencies = [ [[package]] name = "aws-types" -version = "1.3.14" +version = "1.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c8323699dd9b3c8d5b3c13051ae9cdef58fd179957c882f8374dd8725962d9" +checksum = "d16bf10b03a3c01e6b3b7d47cd964e873ffe9e7d4e80fad16bd4c077cb068531" dependencies = [ "aws-credential-types", "aws-smithy-async", "aws-smithy-runtime-api", + "aws-smithy-schema 0.1.0", "aws-smithy-types", "rustc_version", "tracing", @@ -1105,9 +1124,15 @@ checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" [[package]] name = "bitflags" -version = "2.11.0" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" dependencies = [ "serde_core", ] @@ -1123,16 +1148,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.8.3" +version = "1.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" +checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if 1.0.4", "constant_time_eq", - "cpufeatures 0.2.17", + "cpufeatures 0.3.0", ] [[package]] @@ -1146,9 +1171,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" dependencies = [ "hybrid-array", ] @@ -1174,9 +1199,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.9.1" +version = "3.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f47dbe92550676ee653353c310dfb9cf6ba17ee70396e1f7cf0a2020ad49b2fe" +checksum = "a602c73c7b0148ec6d12af6fd5cc7a46e2eacc8878271a999abac56eed12f561" dependencies = [ "bon-macros", "rustversion", @@ -1184,24 +1209,24 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.9.1" +version = "3.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519bd3116aeeb42d5372c29d982d16d0170d3d4a5ed85fc7dd91642ffff3c67c" +checksum = "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f" dependencies = [ - "darling 0.20.11", + "darling 0.23.0", "ident_case", "prettyplease", "proc-macro2", "quote", "rustversion", - "syn 2.0.117", + "syn", ] [[package]] name = "brotli" -version = "8.0.2" +version = "8.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1210,9 +1235,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "5.0.0" +version = "5.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1229,20 +1254,20 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +checksum = "5cee35f73844aa3014bb606320a6c1f010249dbdf43342fe54b5a4f6a8ed4b79" dependencies = [ "memchr", "regex-automata", - "serde", + "serde_core", ] [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" @@ -1261,7 +1286,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1309,9 +1334,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.57" +version = "1.2.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" +checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996" dependencies = [ "find-msvc-tools", "jobserver", @@ -1339,20 +1364,20 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chacha20" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" dependencies = [ "cfg-if 1.0.4", "cpufeatures 0.3.0", - "rand_core 0.10.0", + "rand_core 0.10.1", ] [[package]] name = "chrono" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "js-sys", @@ -1384,9 +1409,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -1398,7 +1423,7 @@ version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ - "anstream 1.0.0", + "anstream", "anstyle", "clap_lex", "strsim", @@ -1406,14 +1431,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1433,13 +1458,19 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" dependencies = [ "cc", ] +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + [[package]] name = "colorchoice" version = "1.0.5" @@ -1477,9 +1508,9 @@ dependencies = [ [[package]] name = "compression-codecs" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" +checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf" dependencies = [ "bzip2", "compression-core", @@ -1492,9 +1523,9 @@ dependencies = [ [[package]] name = "compression-core" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" +checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789" [[package]] name = "concurrent-queue" @@ -1507,9 +1538,9 @@ dependencies = [ [[package]] name = "console" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" +checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" dependencies = [ "encode_unicode", "libc", @@ -1596,21 +1627,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core_extensions" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bb5e5d0269fd4f739ea6cedaf29c16d81c27a7ce7582008e90eb50dcd57003" -dependencies = [ - "core_extensions_proc_macros", -] - -[[package]] -name = "core_extensions_proc_macros" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533d38ecd2709b7608fb8e18e4504deb99e9a72879e6aa66373a76d8dc4259ea" - [[package]] name = "countio" version = "0.3.0" @@ -1649,9 +1665,9 @@ dependencies = [ [[package]] name = "crc-catalog" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" [[package]] name = "crc32c" @@ -1673,36 +1689,36 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.15" +version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.18" +version = "0.9.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-queue" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +checksum = "803d13fb3b09d88be9f4dbc29062c66b19bf7170867ceb746d2a8689bf6c7a26" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" [[package]] name = "crunchy" @@ -1763,9 +1779,9 @@ dependencies = [ [[package]] name = "ctor" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01334b89b69ff726750c5ce5073fc8bd860e99aa9a8fc5ca11b04730e3aee97a" +checksum = "fb22e947478ccf9dc44d8922042c677a63fbb88f2cb468521d1145816e5087cb" dependencies = [ "link-section", "linktime-proc-macro", @@ -1786,6 +1802,15 @@ dependencies = [ "cipher", ] +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + [[package]] name = "darling" version = "0.20.11" @@ -1817,7 +1842,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn", ] [[package]] @@ -1830,7 +1855,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn", ] [[package]] @@ -1841,7 +1866,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1852,7 +1877,7 @@ checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core 0.23.0", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -1871,14 +1896,13 @@ dependencies = [ [[package]] name = "datafusion" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93db0e623840612f7f2cd757f7e8a8922064192363732c88692e0870016e141b" +checksum = "997a31e15872606a49478e670c58302094c97cb96abb0a7d60720f8e92170040" dependencies = [ "arrow", "arrow-schema", "async-trait", - "bytes", "bzip2", "chrono", "datafusion-catalog", @@ -1909,14 +1933,13 @@ dependencies = [ "datafusion-sql", "flate2", "futures", + "indexmap 2.14.0", "itertools 0.14.0", "liblzma", "log", "object_store", "parking_lot", "parquet", - "rand 0.9.4", - "regex", "sqlparser", "tempfile", "tokio", @@ -1927,9 +1950,9 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37cefde60b26a7f4ff61e9d2ff2833322f91df2b568d7238afe67bde5bdffb66" +checksum = "f7dd61161508f8f5fa1107774ea687bd753c22d83a32eebf963549f89de14139" dependencies = [ "arrow", "async-trait", @@ -1952,9 +1975,9 @@ dependencies = [ [[package]] name = "datafusion-catalog-listing" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17e112307715d6a7a331111a4c2330ff54bc237183511c319e3708a4cff431fb" +checksum = "897c70f871277f9ce99aa38347be0d679bbe3e617156c4d2a8378cec8a2a0891" dependencies = [ "arrow", "async-trait", @@ -1975,9 +1998,9 @@ dependencies = [ [[package]] name = "datafusion-cli" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22c001ad1ac11cda09dab69b151eef5b1a992e23bc524ab0d1e63e5dea327" +checksum = "2a9533845ab888508718c2ad540cff205d1111525a9952def8b0e584b6453784" dependencies = [ "arrow", "async-trait", @@ -2003,36 +2026,36 @@ dependencies = [ [[package]] name = "datafusion-common" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d72a11ca44a95e1081870d3abb80c717496e8a7acb467a1d3e932bb636af5cc2" +checksum = "121c9ded5d87d9172319e006f2afdb9928d72dbacd6a90a458d8acb1e3b43a65" dependencies = [ - "ahash", - "apache-avro", "arrow", "arrow-ipc", + "arrow-schema", "chrono", + "foldhash 0.2.0", "half", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "hex", - "indexmap 2.13.0", + "indexmap 2.14.0", "itertools 0.14.0", "libc", "log", "object_store", "parquet", - "paste", "recursive", "sqlparser", "tokio", + "uuid", "web-time", ] [[package]] name = "datafusion-common-runtime" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89f4afaed29670ec4fd6053643adc749fe3f4bc9d1ce1b8c5679b22c67d12def" +checksum = "981b9dae74f78ee3d9f714fb49b01919eab975461b56149510c3ba9ea11287d1" dependencies = [ "futures", "log", @@ -2041,9 +2064,9 @@ dependencies = [ [[package]] name = "datafusion-datasource" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9fb386e1691355355a96419978a0022b7947b44d4a24a6ea99f00b6b485cbb6" +checksum = "ffd7d295b2ec7c00d8a56562f41ed41062cf0af75549ed891c12a0a09eddfefe" dependencies = [ "arrow", "async-compression", @@ -2067,7 +2090,8 @@ dependencies = [ "liblzma", "log", "object_store", - "rand 0.9.4", + "parking_lot", + "rand 0.9.5", "tokio", "tokio-util", "url", @@ -2076,9 +2100,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-arrow" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa6c52cfed0734c5f93754d1c0175f558175248bf686c944fb05c373e5fc096" +checksum = "552b0b3f342f7ec41b3fbd70f6339dc82a30cfd0349e7f280e7852528085349f" dependencies = [ "arrow", "arrow-ipc", @@ -2100,29 +2124,28 @@ dependencies = [ [[package]] name = "datafusion-datasource-avro" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a579c3bd290c66ea4b269493e75e8a3ed42c9c895a651f10210a29538aee50c4" +checksum = "fb517d08967d536284ce70afb5fe8583133779249f2d7b90587d339741a7f195" dependencies = [ - "apache-avro", "arrow", + "arrow-avro", "async-trait", "bytes", "datafusion-common", "datafusion-datasource", - "datafusion-physical-expr-common", + "datafusion-physical-expr-adapter", "datafusion-physical-plan", "datafusion-session", "futures", - "num-traits", "object_store", ] [[package]] name = "datafusion-datasource-csv" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "503f29e0582c1fc189578d665ff57d9300da1f80c282777d7eb67bb79fb8cdca" +checksum = "68850aa426b897e879c8b87e512ea8124f1d0a2869a4e51808ddaaddf1bc0ada" dependencies = [ "arrow", "async-trait", @@ -2143,9 +2166,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-json" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33804749abc8d0c8cb7473228483cb8070e524c6f6086ee1b85a64debe2b3d2" +checksum = "402f93242ae08ef99139ee2c528a49d087efe88d5c7b2c3ff5480855a40ce54f" dependencies = [ "arrow", "async-trait", @@ -2160,16 +2183,15 @@ dependencies = [ "datafusion-session", "futures", "object_store", - "serde_json", "tokio", "tokio-stream", ] [[package]] name = "datafusion-datasource-parquet" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a8e0365e0e08e8ff94d912f0ababcf9065a1a304018ba90b1fc83c855b4997" +checksum = "ffd2499c1bee0eeccf6a57156105700eeeb17bc701899ac719183c4e74231450" dependencies = [ "arrow", "async-trait", @@ -2179,6 +2201,7 @@ dependencies = [ "datafusion-datasource", "datafusion-execution", "datafusion-expr", + "datafusion-functions", "datafusion-functions-aggregate-common", "datafusion-physical-expr", "datafusion-physical-expr-adapter", @@ -2197,20 +2220,19 @@ dependencies = [ [[package]] name = "datafusion-doc" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de6ac0df1662b9148ad3c987978b32cbec7c772f199b1d53520c8fa764a87ee" +checksum = "cb9e7e5d11130c48c8bd4e80c79a9772dd28ce6dc330baca9246205d245b9e2e" [[package]] name = "datafusion-execution" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03c7fbdaefcca4ef6ffe425a5fc2325763bfb426599bb0bf4536466efabe709" +checksum = "37a8643ab852eb68864e1b72ae789e8066282dce48eea6347ffb0aee33d1ccc0" dependencies = [ "arrow", "arrow-buffer", "async-trait", - "chrono", "dashmap", "datafusion-common", "datafusion-expr", @@ -2220,18 +2242,19 @@ dependencies = [ "object_store", "parking_lot", "parquet", - "rand 0.9.4", + "rand 0.9.5", "tempfile", "url", ] [[package]] name = "datafusion-expr" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "574b9b6977fedbd2a611cbff12e5caf90f31640ad9dc5870f152836d94bad0dd" +checksum = "6932f4d71eed9c8d9341476a2b845aadfabde5495d08dbcd8fc23881f49fa7a0" dependencies = [ "arrow", + "arrow-schema", "async-trait", "chrono", "datafusion-common", @@ -2240,9 +2263,8 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-functions-window-common", "datafusion-physical-expr-common", - "indexmap 2.13.0", + "indexmap 2.14.0", "itertools 0.14.0", - "paste", "recursive", "serde_json", "sqlparser", @@ -2250,28 +2272,27 @@ dependencies = [ [[package]] name = "datafusion-expr-common" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d7c3adf3db8bf61e92eb90cb659c8e8b734593a8f7c8e12a843c7ddba24b87e" +checksum = "0225491839a31b1f7d2cb8092c2d50792e2fe1c1724e4e6d08e011f5feaf4ed2" dependencies = [ "arrow", "datafusion-common", - "indexmap 2.13.0", + "indexmap 2.14.0", "itertools 0.14.0", - "paste", ] [[package]] name = "datafusion-ffi" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95173344d04ba62755c949bf44f8d1a6e4414cf6392a635db96c07e711b9a3c" +checksum = "e5660e8fa79fd51e29ce46f3026b67317ef738ebd633e106beb1a1907a406152" dependencies = [ - "abi_stable", "arrow", "arrow-schema", "async-ffi", "async-trait", + "chrono", "datafusion-catalog", "datafusion-common", "datafusion-datasource", @@ -2280,22 +2301,25 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-physical-expr", "datafusion-physical-expr-common", + "datafusion-physical-optimizer", "datafusion-physical-plan", "datafusion-proto", "datafusion-proto-common", "datafusion-session", "futures", + "libloading", "log", "prost", "semver", + "stabby", "tokio", ] [[package]] name = "datafusion-functions" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28aa4e10384e782774b10e72aca4d93ef7b31aa653095d9d4536b0a3dbc51b6" +checksum = "14872c47bfc3d21e53ec82f57074e6987a15941c1e2f43cde4ac6ae2746634e3" dependencies = [ "arrow", "arrow-buffer", @@ -2310,26 +2334,25 @@ dependencies = [ "datafusion-expr", "datafusion-expr-common", "datafusion-macros", + "datafusion-physical-expr-common", "hex", "itertools 0.14.0", "log", - "md-5 0.10.6", + "md-5 0.11.0", "memchr", "num-traits", - "rand 0.9.4", + "rand 0.9.5", "regex", - "sha2", - "unicode-segmentation", + "sha2 0.11.0", "uuid", ] [[package]] name = "datafusion-functions-aggregate" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00aa6217e56098ba84e0a338176fe52f0a84cca398021512c6c8c5eff806d0ad" +checksum = "75a2ca14e1b609be21e657e2d3130b2f446456b08393b377bb721a33952d2e09" dependencies = [ - "ahash", "arrow", "datafusion-common", "datafusion-doc", @@ -2339,19 +2362,18 @@ dependencies = [ "datafusion-macros", "datafusion-physical-expr", "datafusion-physical-expr-common", + "foldhash 0.2.0", "half", "log", "num-traits", - "paste", ] [[package]] name = "datafusion-functions-aggregate-common" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b511250349407db7c43832ab2de63f5557b19a20dfd236b39ca2c04468b50d47" +checksum = "1ece74ba09092d2ef9c9b54a38445450aea292a1f8b04faf531936b723a24b3c" dependencies = [ - "ahash", "arrow", "datafusion-common", "datafusion-expr-common", @@ -2360,9 +2382,9 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef13a858e20d50f0a9bb5e96e7ac82b4e7597f247515bccca4fdd2992df0212a" +checksum = "3f3e3f9ee8ca59bf70518802107de6f1b88a9509efdc629fadc5de9d6b2d5ef5" dependencies = [ "arrow", "arrow-ord", @@ -2376,34 +2398,34 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-macros", "datafusion-physical-expr-common", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "itertools 0.14.0", "itoa", "log", - "paste", + "memchr", ] [[package]] name = "datafusion-functions-table" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b40d3f5bbb3905f9ccb1ce9485a9595c77b69758a7c24d3ba79e334ff51e7e" +checksum = "89161dffc22cf2b50f9f4b1bee83b5221d3b4ed7c2e37fd7aa2b22a5297b3a26" dependencies = [ "arrow", "async-trait", "datafusion-catalog", "datafusion-common", "datafusion-expr", + "datafusion-physical-expr", "datafusion-physical-plan", "parking_lot", - "paste", ] [[package]] name = "datafusion-functions-window" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e88ec9d57c9b685d02f58bfee7be62d72610430ddcedb82a08e5d9925dbfb6" +checksum = "d7339345b226b3874037708bf5023ba1c2de705128f8457a095aae5ae9cb9c78" dependencies = [ "arrow", "datafusion-common", @@ -2414,14 +2436,13 @@ dependencies = [ "datafusion-physical-expr", "datafusion-physical-expr-common", "log", - "paste", ] [[package]] name = "datafusion-functions-window-common" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8307bb93519b1a91913723a1130cfafeee3f72200d870d88e91a6fc5470ede5c" +checksum = "fa84836dc2392df6f43d6a29d37fb56a8ebdc8b3f4e10ae8dc15861fd20278fb" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -2429,20 +2450,20 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e367e6a71051d0ebdd29b2f85d12059b38b1d1f172c6906e80016da662226bd" +checksum = "587164e03ad68732aa9e7bfe5686e3f25970d4c64fd4bd80790749840892dae5" dependencies = [ "datafusion-doc", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "datafusion-optimizer" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e929015451a67f77d9d8b727b2bf3a40c4445fdef6cdc53281d7d97c76888ace" +checksum = "77f20e8cf9e8654d92f4c16b24c487353ee5bf153ffc12d5772cd399ab8cd281" dependencies = [ "arrow", "chrono", @@ -2450,7 +2471,7 @@ dependencies = [ "datafusion-expr", "datafusion-expr-common", "datafusion-physical-expr", - "indexmap 2.13.0", + "indexmap 2.14.0", "itertools 0.14.0", "log", "recursive", @@ -2460,11 +2481,10 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b1e68aba7a4b350401cfdf25a3d6f989ad898a7410164afe9ca52080244cb59" +checksum = "f015a4a82f6f7ff7e1d8d4bf3870a936752fa38b17705dfcc14adef95aa8922c" dependencies = [ - "ahash", "arrow", "datafusion-common", "datafusion-expr", @@ -2472,11 +2492,10 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-physical-expr-common", "half", - "hashbrown 0.16.1", - "indexmap 2.13.0", + "hashbrown 0.17.1", + "indexmap 2.14.0", "itertools 0.14.0", "parking_lot", - "paste", "petgraph", "recursive", "tokio", @@ -2484,9 +2503,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-adapter" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea22315f33cf2e0adc104e8ec42e285f6ed93998d565c65e82fec6a9ee9f9db4" +checksum = "51e6ffff8acdfe54e0ea15ccf38115c4a9184433b0439f42907637928d00a235" dependencies = [ "arrow", "datafusion-common", @@ -2499,26 +2518,26 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04b45ea8ad3ac2d78f2ea2a76053e06591c9629c7a603eda16c10649ecf4362" +checksum = "7967a3e171c6a4bf09474b3f7a14f1a3db13ed1714ba12156f33fcce2bba54e8" dependencies = [ - "ahash", "arrow", "chrono", "datafusion-common", "datafusion-expr-common", - "hashbrown 0.16.1", - "indexmap 2.13.0", + "hashbrown 0.17.1", + "indexmap 2.14.0", "itertools 0.14.0", "parking_lot", + "pin-project", ] [[package]] name = "datafusion-physical-optimizer" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb13397809a425918f608dfe8653f332015a3e330004ab191b4404187238b95" +checksum = "59ff803e2a96054cb6d83f35f9e60fd4f42eac515e1932bd1b2dbc91d5fcbf36" dependencies = [ "arrow", "datafusion-common", @@ -2535,12 +2554,13 @@ dependencies = [ [[package]] name = "datafusion-physical-plan" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5edc023675791af9d5fb4cc4c24abf5f7bd3bd4dcf9e5bd90ea1eff6976dcc79" +checksum = "776ee54d47d15bdb126452f9ca17b03761e3b004682914beaedd3f86eb507fbc" dependencies = [ - "ahash", "arrow", + "arrow-data", + "arrow-ipc", "arrow-ord", "arrow-schema", "async-trait", @@ -2555,8 +2575,8 @@ dependencies = [ "datafusion-physical-expr-common", "futures", "half", - "hashbrown 0.16.1", - "indexmap 2.13.0", + "hashbrown 0.17.1", + "indexmap 2.14.0", "itertools 0.14.0", "log", "num-traits", @@ -2567,9 +2587,9 @@ dependencies = [ [[package]] name = "datafusion-proto" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a387aaef949dc16bb6abc81bd1af850ec7449183aef011214f9724957495738" +checksum = "9dd15a1ba5d3af93808241065c6c44dbca8296a189845e8a587c45c07bf0ffae" dependencies = [ "arrow", "chrono", @@ -2590,14 +2610,13 @@ dependencies = [ "datafusion-proto-common", "object_store", "prost", - "rand 0.9.4", ] [[package]] name = "datafusion-proto-common" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e614c7c53a9c304c6a850b821010bb492e57300311835f1180613f9d2c63d9" +checksum = "90042982cf9462eb06a0b81f92efa4188dae871e7ea3ab8dc61aa9c9349b2530" dependencies = [ "arrow", "datafusion-common", @@ -2606,9 +2625,9 @@ dependencies = [ [[package]] name = "datafusion-pruning" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac8c76860e355616555081cab5968cec1af7a80701ff374510860bcd567e365a" +checksum = "d5fb9e5774660aa69c3ba93c610f175f75b65cb8c3776edb3626de8f3a4f4ee3" dependencies = [ "arrow", "datafusion-common", @@ -2617,15 +2636,14 @@ dependencies = [ "datafusion-physical-expr", "datafusion-physical-expr-common", "datafusion-physical-plan", - "itertools 0.14.0", "log", ] [[package]] name = "datafusion-session" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5412111aa48e2424ba926112e192f7a6b7e4ccb450145d25ce5ede9f19dc491e" +checksum = "15ce715fa2a61f4623cc234bcc14a3ef6a91f189128d5b14b468a6a17cdfc417" dependencies = [ "async-trait", "datafusion-common", @@ -2637,9 +2655,9 @@ dependencies = [ [[package]] name = "datafusion-spark" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e059dcf8544da0d6598d0235be3cc29c209094a5976b2e4822e4a2cf91c2b5c5" +checksum = "390bb0bf37cb2b95ffd65eacd66f60df50793d1f94097799e416f39477a51957" dependencies = [ "arrow", "bigdecimal", @@ -2652,21 +2670,24 @@ dependencies = [ "datafusion-expr", "datafusion-functions", "datafusion-functions-aggregate", + "datafusion-functions-aggregate-common", "datafusion-functions-nested", "log", + "num-traits", "percent-encoding", - "rand 0.9.4", + "rand 0.9.5", "serde_json", - "sha1", - "sha2", + "sha1 0.11.0", + "sha2 0.11.0", + "twox-hash", "url", ] [[package]] name = "datafusion-sql" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0d133ddf8b9b3b872acac900157f783e7b879fe9a6bccf389abebbfac45ec1" +checksum = "6094ad36a3ed6d7ac87b20b479b2d0b118250f66cf997603829fdc65b44a7099" dependencies = [ "arrow", "bigdecimal", @@ -2674,7 +2695,7 @@ dependencies = [ "datafusion-common", "datafusion-expr", "datafusion-functions-nested", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", "recursive", "regex", @@ -2683,9 +2704,9 @@ dependencies = [ [[package]] name = "datafusion-sqllogictest" -version = "53.1.0" +version = "54.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e5a4a7a49143a68936992b6dbb0db44121c635e9992b2482817278f1e69c56" +checksum = "e0c08025966108056d3547d879c4d39e246277494f59ca12920f78187d95eea1" dependencies = [ "arrow", "async-trait", @@ -2693,7 +2714,6 @@ dependencies = [ "clap", "datafusion", "datafusion-spark", - "datafusion-substrait", "futures", "half", "indicatif", @@ -2708,23 +2728,34 @@ dependencies = [ ] [[package]] -name = "datafusion-substrait" -version = "53.1.0" +name = "defmt" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98494539a5468979cc42d86c7bc5f0f8cb71ee5c742694c26fc34efdd29dd2e5" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" dependencies = [ - "async-recursion", - "async-trait", - "chrono", - "datafusion", - "half", - "itertools 0.14.0", - "object_store", - "pbjson-types", - "prost", - "substrait", - "tokio", - "url", + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror 2.0.18", ] [[package]] @@ -2744,7 +2775,6 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ - "powerfmt", "serde_core", ] @@ -2766,7 +2796,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2776,7 +2806,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.117", + "syn", ] [[package]] @@ -2803,9 +2833,10 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ - "block-buffer 0.12.0", + "block-buffer 0.12.1", "const-oid 0.10.2", "crypto-common 0.2.2", + "ctutils", ] [[package]] @@ -2826,18 +2857,18 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -2903,14 +2934,14 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "either" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" dependencies = [ "serde", ] @@ -2923,9 +2954,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "endian-type" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" +checksum = "869b0adbda23651a9c5c0c3d270aac9fcb52e8622a8f2b17e57802d7791962f2" [[package]] name = "enum-ordinalize" @@ -2944,14 +2975,14 @@ checksum = "42e528e2d34ba8a67a1a650b86beae8ef69fc5fdb638016f386b973226590432" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "env_filter" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" dependencies = [ "log", "regex", @@ -2959,11 +2990,11 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.9" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" dependencies = [ - "anstream 0.6.21", + "anstream", "anstyle", "env_filter", "jiff", @@ -2994,7 +3025,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -3053,9 +3084,9 @@ dependencies = [ [[package]] name = "fastnum" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4089ab2dfd45d8ddc92febb5ca80644389d5ebb954f40231274a3f18341762e2" +checksum = "020d1b59a944bc239d79903fbac2eda2365138b44890c27979562f6592059dcd" dependencies = [ "bnum", "num-integer", @@ -3065,9 +3096,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "faststr" @@ -3081,17 +3112,6 @@ dependencies = [ "simdutf8", ] -[[package]] -name = "fd-lock" -version = "4.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78" -dependencies = [ - "cfg-if 1.0.4", - "rustix", - "windows-sys 0.59.0", -] - [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -3110,7 +3130,7 @@ version = "25.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3" dependencies = [ - "bitflags", + "bitflags 2.13.0", "rustc_version", ] @@ -3165,15 +3185,18 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" +checksum = "8878864ba14bb86e818a412bfd6f18f9eabd4ec0f008a28e8f7eb61db532fcf9" +dependencies = [ + "futures-core", +] [[package]] name = "fs-err" -version = "3.3.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fde052dbfc920003cfd2c8e2c6e6d4cc7c1091538c3a24226cec0665ab08c0" +checksum = "b91aa448ca50d7e79433bdf3ee8d99215430d2ec02ade5aefab2a073a1822e8a" dependencies = [ "autocfg", ] @@ -3251,7 +3274,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3268,9 +3291,9 @@ checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +checksum = "af43fadb8a98512d547e37b4e92e0ced13e205c061b87b4623eff01d918d6968" [[package]] name = "futures-util" @@ -3298,15 +3321,6 @@ dependencies = [ "cfg-if 0.1.10", ] -[[package]] -name = "generational-arena" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877e94aff08e743b651baaea359664321055749b398adff8740a7399af7796e7" -dependencies = [ - "cfg-if 1.0.4", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -3337,26 +3351,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if 1.0.4", - "js-sys", "libc", "r-efi 5.3.0", "wasip2", - "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if 1.0.4", "js-sys", "libc", "r-efi 6.0.0", - "rand_core 0.10.0", - "wasip2", - "wasip3", + "rand_core 0.10.1", "wasm-bindgen", ] @@ -3387,7 +3397,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -3410,17 +3420,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" +checksum = "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.4.0", - "indexmap 2.13.0", + "http 1.4.2", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -3465,21 +3475,15 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ "allocator-api2", "equivalent", "foldhash 0.2.0", ] -[[package]] -name = "hashbrown" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" - [[package]] name = "hashlink" version = "0.10.0" @@ -3515,7 +3519,7 @@ checksum = "430b33fa84f92796d4d263070b6c0d3ca219df7b9a0e1853ee431029b1612bcd" dependencies = [ "async-trait", "bytes", - "http 1.4.0", + "http 1.4.2", "more-asserts", "serde", "thiserror 2.0.18", @@ -3547,7 +3551,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "hmac", + "hmac 0.12.1", ] [[package]] @@ -3559,13 +3563,22 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "hmac" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" +dependencies = [ + "digest 0.11.3", +] + [[package]] name = "home" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -3581,9 +3594,9 @@ dependencies = [ [[package]] name = "http" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" dependencies = [ "bytes", "itoa", @@ -3607,7 +3620,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.4.0", + "http 1.4.2", ] [[package]] @@ -3618,7 +3631,7 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", "pin-project-lite", ] @@ -3637,37 +3650,36 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" +checksum = "15cdd26707701c53297e2fa6afb323d55fbc1d0810c3aec078ae3ef0424c3c15" [[package]] name = "hybrid-array" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" dependencies = [ "typenum", ] [[package]] name = "hyper" -version = "1.8.1" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498" dependencies = [ "atomic-waker", "bytes", "futures-channel", "futures-core", "h2", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", "httparse", "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -3675,16 +3687,15 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ - "http 1.4.0", + "http 1.4.2", "hyper", "hyper-util", "rustls", "rustls-native-certs", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -3700,14 +3711,14 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", "hyper", "ipnet", "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.3", + "socket2 0.5.10", "system-configuration", "tokio", "tower-service", @@ -3778,7 +3789,7 @@ dependencies = [ "ordered-float 4.6.0", "parquet", "pretty_assertions", - "rand 0.9.4", + "rand 0.9.5", "regex", "reqwest 0.12.28", "roaring", @@ -3873,7 +3884,7 @@ version = "0.10.0" dependencies = [ "async-trait", "chrono", - "http 1.4.0", + "http 1.4.2", "iceberg", "iceberg_test_utils", "itertools 0.13.0", @@ -4041,12 +4052,13 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" dependencies = [ "displaydoc", "potential_utf", + "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -4054,9 +4066,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", @@ -4067,9 +4079,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -4081,15 +4093,15 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" [[package]] name = "icu_properties" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" dependencies = [ "icu_collections", "icu_locale_core", @@ -4101,15 +4113,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" [[package]] name = "icu_provider" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", @@ -4120,12 +4132,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "ident_case" version = "1.0.1" @@ -4145,9 +4151,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" dependencies = [ "icu_normalizer", "icu_properties", @@ -4166,21 +4172,21 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "serde", "serde_core", ] [[package]] name = "indicatif" -version = "0.18.4" +version = "0.18.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25470f23803092da7d239834776d653104d551bc4d7eacaf31e6837854b8e9eb" +checksum = "9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c" dependencies = [ "console", "portable-atomic", @@ -4217,9 +4223,9 @@ dependencies = [ [[package]] name = "inventory" -version = "0.3.22" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "009ae045c87e7082cb72dab0ccd01ae075dd00141ddc108f43a0ea150a9e7227" +checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" dependencies = [ "rustversion", ] @@ -4230,16 +4236,6 @@ version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" -[[package]] -name = "iri-string" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e7418f59cc01c88316161279a7f665217ae316b388e58a0d10e29f54f1e5eb" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.2" @@ -4272,10 +4268,11 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.23" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" +checksum = "ccfe6121cbe750cf81efa362d85c0bde7ea298ec43092d3a193baca59cdbd634" dependencies = [ + "defmt", "jiff-static", "jiff-tzdb-platform", "js-sys", @@ -4284,25 +4281,25 @@ dependencies = [ "portable-atomic-util", "serde_core", "wasm-bindgen", - "windows-sys 0.60.2", + "windows-link", ] [[package]] name = "jiff-static" -version = "0.2.23" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" +checksum = "e165e897f662d428f3cd3828a919dbe067c2d42bb1031eede74ef9d27ecdedd2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "jiff-tzdb" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c900ef84826f1338a557697dc8fc601df9ca9af4ac137c7fb61d4c6f2dfd3076" +checksum = "6142247df1a93c2b3587402a19710be3e6e942f1581a1702e76408f2c21d6590" [[package]] name = "jiff-tzdb-platform" @@ -4340,7 +4337,7 @@ dependencies = [ "quote", "rustc_version", "simd_cesu8", - "syn 2.0.117", + "syn", ] [[package]] @@ -4359,46 +4356,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "jobserver" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.4.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" dependencies = [ - "once_cell", + "cfg-if 1.0.4", + "futures-util", "wasm-bindgen", ] -[[package]] -name = "jsonwebtoken" -version = "10.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0529410abe238729a60b108898784df8984c87f6054c9c4fcacc47e4803c1ce1" -dependencies = [ - "aws-lc-rs", - "base64", - "getrandom 0.2.17", - "js-sys", - "pem", - "serde", - "serde_json", - "signature", - "simple_asn1", -] - [[package]] name = "konst" version = "0.4.3" @@ -4425,12 +4406,6 @@ dependencies = [ "spin", ] -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "lexical-core" version = "1.0.6" @@ -4490,40 +4465,40 @@ dependencies = [ [[package]] name = "libbz2-rs-sys" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" +checksum = "34b357333733e8260735ba5894eb928c02ecc69c78715f01a8019e7fa7f2db4c" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libloading" -version = "0.7.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" dependencies = [ "cfg-if 1.0.4", - "winapi", + "windows-link", ] [[package]] name = "liblzma" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6033b77c21d1f56deeae8014eb9fbe7bdf1765185a6c508b5ca82eeaed7f899" +checksum = "45aec2360b3933207e27908049d8e4df4e476b58180afb1e56b2a4fb72efe4ba" dependencies = [ "liblzma-sys", ] [[package]] name = "liblzma-sys" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f2db66f3268487b5033077f266da6777d057949b8f93c8ad82e441df25e6186" +checksum = "a046c7f353ba30f810545151e04f63545833803f5b86ee3ddf1517247fe560a5" dependencies = [ "cc", "libc", @@ -4538,24 +4513,23 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libmimalloc-sys" -version = "0.1.44" +version = "0.1.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870" +checksum = "6a45a52f43e1c16f667ccfe4dd8c85b7f7c204fd5e3bf46c5b0db9a5c3c0b8e9" dependencies = [ "cc", - "libc", ] [[package]] name = "libredox" -version = "0.1.14" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" +checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" dependencies = [ - "bitflags", + "bitflags 2.13.0", "libc", "plain", - "redox_syscall 0.7.3", + "redox_syscall 0.9.0", ] [[package]] @@ -4575,7 +4549,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14e6ba06f0ade6e504aff834d7c34298e5155c6baca353cc6a4aaff2f9fd7f33" dependencies = [ - "anstream 1.0.0", + "anstream", "anstyle", "clap", "escape8259", @@ -4583,9 +4557,9 @@ dependencies = [ [[package]] name = "link-section" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "014e440054ce8170890229eeef5bcda955305e056ec713de40ed366944483f09" +checksum = "e333fe507b738576d6da5bb3f1a7d7a1c80307ed9ef31624c057d844c19c93e9" [[package]] name = "linked-hash-map" @@ -4618,9 +4592,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "lock_api" @@ -4633,9 +4607,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" [[package]] name = "lru-slab" @@ -4645,18 +4619,18 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "lz4_flex" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db9a0d582c2874f68138a16ce1867e0ffde6c0bb0a0df85e1f36d04146db488a" +checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e" dependencies = [ "twox-hash", ] [[package]] name = "marrow" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5240d6977234968ff9ad254bfa73aa397fb51e41dcb22b1eb85835e9295485b" +checksum = "48b7541d9bd6781e25b0dfe7d638e5a8aa7950d5cdbf86f97537b5672768f7c4" dependencies = [ "arrow-array", "arrow-buffer", @@ -4698,18 +4672,18 @@ dependencies = [ [[package]] name = "mea" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6747f54621d156e1b47eb6b25f39a941b9fc347f98f67d25d8881ff99e8ed832" +checksum = "2640d335e7273dacdcf51044026139b2e269c3bb0dfc3f8cb3496b85e3f6a42c" dependencies = [ "slab", ] [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" [[package]] name = "memo-map" @@ -4741,9 +4715,9 @@ dependencies = [ [[package]] name = "mimalloc" -version = "0.1.48" +version = "0.1.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1ee66a4b64c74f4ef288bcbb9192ad9c3feaad75193129ac8509af543894fd8" +checksum = "2d4139bb28d14ad1facf21d5eb8825051b326e172d216b39f6d31df53cc97862" dependencies = [ "libmimalloc-sys", ] @@ -4770,9 +4744,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" dependencies = [ "libc", "wasi 0.11.1+wasi-snapshot-preview1", @@ -4802,7 +4776,7 @@ dependencies = [ "cfg-if 1.0.4", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4815,14 +4789,14 @@ dependencies = [ "bytes", "colored", "futures-core", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", "http-body-util", "hyper", "hyper-util", "log", "pin-project-lite", - "rand 0.9.4", + "rand 0.9.5", "regex", "serde_json", "serde_urlencoded", @@ -4876,15 +4850,9 @@ checksum = "b40e46c845ac234bcba19db7ab252bc2778cbadd516a466d2f12b1580852d136" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" - [[package]] name = "munge" version = "0.4.7" @@ -4902,7 +4870,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -4932,7 +4900,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags", + "bitflags 2.13.0", "cfg-if 1.0.4", "cfg_aliases", "libc", @@ -4941,11 +4909,11 @@ dependencies = [ [[package]] name = "nix" -version = "0.30.1" +version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ - "bitflags", + "bitflags 2.13.0", "cfg-if 1.0.4", "cfg_aliases", "libc", @@ -4966,14 +4934,14 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "num-bigint" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" dependencies = [ "num-integer", "num-traits", @@ -4991,7 +4959,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand 0.8.5", + "rand 0.8.6", "smallvec", "zeroize", ] @@ -5007,9 +4975,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-integer" @@ -5022,11 +4990,10 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -5060,7 +5027,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5069,7 +5036,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags", + "bitflags 2.13.0", ] [[package]] @@ -5114,7 +5081,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "http 1.4.0", + "http 1.4.2", "http-body-util", "humantime", "hyper", @@ -5122,8 +5089,8 @@ dependencies = [ "md-5 0.10.6", "parking_lot", "percent-encoding", - "quick-xml", - "rand 0.10.1", + "quick-xml 0.39.4", + "rand 0.10.2", "reqwest 0.12.28", "ring", "rustls-pki-types", @@ -5169,7 +5136,7 @@ version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c9c85ce253ff87225e7669979d877a20c98a06604ec9d6dd5f4473e08f1ae1" dependencies = [ - "ctor 1.0.7", + "ctor 1.0.8", "opendal-core", "opendal-layer-concurrent-limit", "opendal-layer-logging", @@ -5193,16 +5160,16 @@ dependencies = [ "base64", "bytes", "futures", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", "jiff", "log", "md-5 0.11.0", "mea", "percent-encoding", - "quick-xml", + "quick-xml 0.39.4", "reqsign-core", - "reqwest 0.13.3", + "reqwest 0.13.4", "serde", "serde_json", "tokio", @@ -5218,7 +5185,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6f81ba6960e3fae1882f253b114b21d7e444e1534f209c7737a79f6243eb6f" dependencies = [ "futures", - "http 1.4.0", + "http 1.4.2", "mea", "opendal-core", ] @@ -5262,11 +5229,11 @@ checksum = "6dea4908d490143a9b0b7f7a790e139ff829b06a023f670455ed3d44f664b361" dependencies = [ "base64", "bytes", - "http 1.4.0", + "http 1.4.2", "log", "opendal-core", "opendal-service-azure-common", - "quick-xml", + "quick-xml 0.39.4", "reqsign-azure-storage", "reqsign-core", "reqsign-file-read-tokio", @@ -5280,7 +5247,7 @@ version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b489f13c42e69d69bdd72952b634356ec43a7881a20259b38b540fcecdf4051" dependencies = [ - "http 1.4.0", + "http 1.4.2", "opendal-core", ] @@ -5306,11 +5273,11 @@ checksum = "48de101aac565ed06af4b47903c24eafd249075553ec1fb18256751c45148d47" dependencies = [ "async-trait", "bytes", - "http 1.4.0", + "http 1.4.2", "log", "opendal-core", "percent-encoding", - "quick-xml", + "quick-xml 0.39.4", "reqsign-core", "reqsign-file-read-tokio", "reqsign-google", @@ -5327,11 +5294,11 @@ checksum = "c4922661976a1d40794a2adfbdb888cc3c23097690f825a92f773af38908a848" dependencies = [ "bytes", "hf-xet", - "http 1.4.0", + "http 1.4.2", "log", "opendal-core", "percent-encoding", - "reqwest 0.13.3", + "reqwest 0.13.4", "serde", "serde_json", ] @@ -5343,10 +5310,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "328fa55e8888cbdfe00826bfea2a79042422b720e8369e9e021e46121dea5ace" dependencies = [ "bytes", - "http 1.4.0", + "http 1.4.2", "log", "opendal-core", - "quick-xml", + "quick-xml 0.39.4", "reqsign-aliyun-oss", "reqsign-core", "reqsign-file-read-tokio", @@ -5362,11 +5329,11 @@ dependencies = [ "base64", "bytes", "crc32c", - "http 1.4.0", + "http 1.4.2", "log", "md-5 0.11.0", "opendal-core", - "quick-xml", + "quick-xml 0.39.4", "reqsign-aws-v4", "reqsign-core", "reqsign-file-read-tokio", @@ -5402,7 +5369,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", "serde", ] @@ -5468,9 +5435,9 @@ dependencies = [ [[package]] name = "parquet" -version = "58.1.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3f9f2205199603564127932b89695f52b62322f541d0fc7179d57c2e1c9877" +checksum = "5dafa7d01085b62a47dd0c1829550a0a36710ea9c4fe358a05a85477cec8a908" dependencies = [ "ahash", "arrow-array", @@ -5486,7 +5453,7 @@ dependencies = [ "flate2", "futures", "half", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "lz4_flex", "num-bigint", "num-integer", @@ -5509,43 +5476,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pbjson" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "898bac3fa00d0ba57a4e8289837e965baa2dee8c3749f3b11d45a64b4223d9c3" -dependencies = [ - "base64", - "serde", -] - -[[package]] -name = "pbjson-build" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af22d08a625a2213a78dbb0ffa253318c5c79ce3133d32d296655a7bdfb02095" -dependencies = [ - "heck", - "itertools 0.14.0", - "prost", - "prost-types", -] - -[[package]] -name = "pbjson-types" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e748e28374f10a330ee3bb9f29b828c0ac79831a32bab65015ad9b661ead526" -dependencies = [ - "bytes", - "chrono", - "pbjson", - "pbjson-build", - "prost", - "prost-build", - "serde", -] - [[package]] name = "pbkdf2" version = "0.12.2" @@ -5553,7 +5483,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", - "hmac", + "hmac 0.12.1", ] [[package]] @@ -5589,7 +5519,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", "hashbrown 0.15.5", - "indexmap 2.13.0", + "indexmap 2.14.0", "serde", ] @@ -5635,22 +5565,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5687,7 +5617,7 @@ dependencies = [ "der", "pbkdf2", "scrypt", - "sha2", + "sha2 0.10.9", "spki", ] @@ -5705,9 +5635,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "plain" @@ -5735,18 +5665,18 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" dependencies = [ "portable-atomic", ] [[package]] name = "potential_utf" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "zerovec", ] @@ -5809,7 +5739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn", ] [[package]] @@ -5818,7 +5748,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.5+spec-1.1.0", + "toml_edit 0.25.12+spec-1.1.0", ] [[package]] @@ -5832,60 +5762,32 @@ dependencies = [ [[package]] name = "prost" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" dependencies = [ "bytes", "prost-derive", ] -[[package]] -name = "prost-build" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" -dependencies = [ - "heck", - "itertools 0.14.0", - "log", - "multimap", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.117", - "tempfile", -] - [[package]] name = "prost-derive" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.117", -] - -[[package]] -name = "prost-types" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" -dependencies = [ - "prost", + "syn", ] [[package]] name = "psm" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3852766467df634d74f0b2d7819bf8dc483a0eb2e3b0f50f756f9cfe8b0d18d8" +checksum = "645dbe486e346d9b5de3ef16ede18c26e6c70ad97418f4874b8b1889d6e761ea" dependencies = [ "ar_archive_writer", "cc", @@ -5908,7 +5810,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5966,7 +5868,7 @@ dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5979,7 +5881,7 @@ dependencies = [ "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -5998,11 +5900,21 @@ dependencies = [ "serde", ] +[[package]] +name = "quick-xml" +version = "0.40.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2474bd2e5029e7ccb6abb2ba48cf2383a333851dedf495901544281590c7da7f" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" dependencies = [ "bytes", "cfg_aliases", @@ -6011,7 +5923,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.6.3", + "socket2 0.5.10", "thiserror 2.0.18", "tokio", "tracing", @@ -6020,15 +5932,16 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.15" +version = "0.11.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e" +checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560" dependencies = [ "aws-lc-rs", "bytes", - "getrandom 0.3.4", + "getrandom 0.4.3", "lru-slab", - "rand 0.9.4", + "rand 0.10.2", + "rand_pcg", "ring", "rustc-hash", "rustls", @@ -6042,23 +5955,23 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.3", + "socket2 0.5.10", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" dependencies = [ "proc-macro2", ] @@ -6077,9 +5990,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "radix_trie" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +checksum = "3b4431027dcd37fc2a73ef740b5f233aa805897935b8bce0195e41bbf9a3289a" dependencies = [ "endian-type", "nibble_vec", @@ -6087,18 +6000,18 @@ dependencies = [ [[package]] name = "rancor" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" +checksum = "daff8b7b3ccf5f7ba270b3e7a0a4d4c701c5797e38dec27c7e2c3dbb830fed1c" dependencies = [ "ptr_meta", ] [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -6108,9 +6021,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.5", @@ -6118,13 +6031,13 @@ dependencies = [ [[package]] name = "rand" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ "chacha20", - "getrandom 0.4.2", - "rand_core 0.10.0", + "getrandom 0.4.3", + "rand_core 0.10.1", ] [[package]] @@ -6168,9 +6081,18 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.10.0" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_pcg" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" +dependencies = [ + "rand_core 0.10.1", +] [[package]] name = "recursive" @@ -6189,7 +6111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" dependencies = [ "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -6207,16 +6129,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags", + "bitflags 2.13.0", ] [[package]] name = "redox_syscall" -version = "0.7.3" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" +checksum = "c5102a6aaa05aa011a238e178e6bca86d2cb56fc9f586d37cb80f5bca6e07759" dependencies = [ - "bitflags", + "bitflags 2.13.0", ] [[package]] @@ -6247,14 +6169,14 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "regex" -version = "1.12.3" +version = "1.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba" dependencies = [ "aho-corasick", "memchr", @@ -6281,50 +6203,31 @@ checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] -name = "regress" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2057b2325e68a893284d1538021ab90279adac1139957ca2a74426c6f118fb48" -dependencies = [ - "hashbrown 0.16.1", - "memchr", -] - -[[package]] -name = "relative-path" -version = "1.9.3" +name = "relative-path" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "rend" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" - -[[package]] -name = "repr_offset" -version = "0.2.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb1070755bd29dffc19d0971cab794e607839ba2ef4b69a9e6fbc8733c1b72ea" -dependencies = [ - "tstr", -] +checksum = "663ba70707f96e871406fe10d68128412e619b06d1d47cb91c3a4c6501176240" [[package]] name = "reqsign-aliyun-oss" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ac2757f3140aa2e213b554148ae0b52733e624fc6723f0cc6bb3d440176c95" +checksum = "372266b4733756738eeb199a98188037d27a0989980e2600ae7ce1faf00a867d" dependencies = [ "anyhow", "form_urlencoded", - "http 1.4.0", + "http 1.4.2", "log", "percent-encoding", "reqsign-core", @@ -6335,37 +6238,37 @@ dependencies = [ [[package]] name = "reqsign-aws-v4" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44eaca382e94505a49f1a4849658d153aebf79d9c1a58e5dd3b10361511e9f43" +checksum = "7b75624bd8a466e37ddc0a7b6c33ac859a85347c153a916e1dd9d0b68338f74a" dependencies = [ "anyhow", "bytes", "form_urlencoded", - "http 1.4.0", + "hex", + "http 1.4.2", "log", "percent-encoding", - "quick-xml", + "quick-xml 0.40.1", "reqsign-core", "rust-ini", "serde", "serde_json", "serde_urlencoded", - "sha1", + "sha1 0.11.0", ] [[package]] name = "reqsign-azure-storage" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a321980405d596bd34aaf95c4722a3de4128a67fd19e74a81a83aa3fdf082e6" +checksum = "62b96928e73ad984de1d99e382749d09e5dab7dd707b767974f7e40aa926b82f" dependencies = [ "anyhow", "base64", "bytes", "form_urlencoded", - "http 1.4.0", - "jsonwebtoken", + "http 1.4.2", "log", "pem", "percent-encoding", @@ -6373,14 +6276,14 @@ dependencies = [ "rsa", "serde", "serde_json", - "sha1", + "sha1 0.11.0", ] [[package]] name = "reqsign-core" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10302cf0a7d7e7352ba211fc92c3c5bebf1286153e49cc5aa87348078a8e102" +checksum = "a5fa5cb48808693614d1701fcd3db0b30fa292e0f18e122ae068b6d32eaeed3f" dependencies = [ "anyhow", "base64", @@ -6388,21 +6291,24 @@ dependencies = [ "form_urlencoded", "futures", "hex", - "hmac", - "http 1.4.0", + "hmac 0.13.0", + "http 1.4.2", "jiff", "log", "percent-encoding", - "sha1", - "sha2", + "rsa", + "serde", + "serde_json", + "sha1 0.11.0", + "sha2 0.11.0", "windows-sys 0.61.2", ] [[package]] name = "reqsign-file-read-tokio" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d89295b3d17abea31851cc8de55d843d89c52132c864963c38d41920613dc5" +checksum = "6a4b6f3a3fd29ffcc99a90aec585a65217783badfd73acddf847b63ae683bda9" dependencies = [ "anyhow", "reqsign-core", @@ -6411,13 +6317,12 @@ dependencies = [ [[package]] name = "reqsign-google" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35cc609b49c69e76ecaceb775a03f792d1ed3e7755ab3548d4534fd801e3242e" +checksum = "eb215d0876a18b6bd9cdd380b589e5292aaa638ca15266de794b1122d898b6b2" dependencies = [ "form_urlencoded", - "http 1.4.0", - "jsonwebtoken", + "http 1.4.2", "log", "percent-encoding", "reqsign-aws-v4", @@ -6425,7 +6330,6 @@ dependencies = [ "rsa", "serde", "serde_json", - "sha2", "tokio", ] @@ -6440,7 +6344,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", "http-body-util", "hyper", @@ -6473,15 +6377,15 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ "base64", "bytes", "futures-core", "futures-util", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", "http-body-util", "hyper", @@ -6519,8 +6423,8 @@ checksum = "07bc3f1384cffa4f274dad2d4ddd73aed32fed8f786d96c6be8aa4e5fd3c3b58" dependencies = [ "anyhow", "async-trait", - "http 1.4.0", - "reqwest 0.13.3", + "http 1.4.2", + "reqwest 0.13.4", "thiserror 2.0.18", "tower-service", ] @@ -6535,19 +6439,19 @@ dependencies = [ "cfg-if 1.0.4", "getrandom 0.2.17", "libc", - "untrusted 0.9.0", + "untrusted", "windows-sys 0.52.0", ] [[package]] name = "rkyv" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73389e0c99e664f919275ab5b5b0471391fe9a8de61e1dff9b1eaf56a90f16e3" +checksum = "815cc8a37159a463064825246cadb07961e25cd9885908606f6d08a98d8f8874" dependencies = [ "bytes", "hashbrown 0.17.1", - "indexmap 2.13.0", + "indexmap 2.14.0", "munge", "ptr_meta", "rancor", @@ -6559,20 +6463,20 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d2ed0b54125315fb36bd021e82d314d1c126548f871634b483f46b31d13cac6" +checksum = "c0ed1a78a1b19d184b0daa629dd9a024573173ec7d485b287cb369fb3607cc1c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "roaring" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba9ce64a8f45d7fc86358410bb1a82e8c987504c0d4900e9141d69a9f26c885" +checksum = "1dedc5658c6ecb3bdb5ef5f3295bb9253f42dcf3fd1402c03f6b1f7659c3c4a9" dependencies = [ "bytemuck", "byteorder", @@ -6592,7 +6496,7 @@ dependencies = [ "pkcs1", "pkcs8", "rand_core 0.6.4", - "sha2", + "sha2 0.10.9", "signature", "spki", "subtle", @@ -6624,7 +6528,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.117", + "syn", "unicode-ident", ] @@ -6640,11 +6544,11 @@ dependencies = [ [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" dependencies = [ - "rand 0.8.5", + "rand 0.9.5", ] [[package]] @@ -6662,18 +6566,18 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags", + "bitflags 2.13.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f" dependencies = [ "aws-lc-rs", "once_cell", @@ -6686,9 +6590,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" +checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" dependencies = [ "openssl-probe", "rustls-pki-types", @@ -6698,9 +6602,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046" dependencies = [ "web-time", "zeroize", @@ -6724,7 +6628,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -6742,35 +6646,34 @@ dependencies = [ "aws-lc-rs", "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "rustyline" -version = "17.0.2" +version = "18.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e902948a25149d50edc1a8e0141aad50f54e22ba83ff988cf8f7c9ef07f50564" +checksum = "53f6a737db68eb1a8ccff86b584b2fc13eca6a7bb6f78ebc7c529547e3ab9684" dependencies = [ - "bitflags", + "bitflags 2.13.0", "cfg-if 1.0.4", "clipboard-win", - "fd-lock", "home", "libc", "log", "memchr", - "nix 0.30.1", + "nix 0.31.3", "radix_trie", "unicode-segmentation", "unicode-width 0.2.2", "utf8parse", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -6812,18 +6715,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "schemars" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" -dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", -] - [[package]] name = "schemars" version = "0.9.0" @@ -6848,18 +6739,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "schemars_derive" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 2.0.117", -] - [[package]] name = "scopeguard" version = "1.2.0" @@ -6874,7 +6753,7 @@ checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" dependencies = [ "pbkdf2", "salsa20", - "sha2", + "sha2 0.10.9", ] [[package]] @@ -6883,7 +6762,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags", + "bitflags 2.13.0", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -6902,13 +6781,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" -dependencies = [ - "serde", - "serde_core", -] +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "seq-macro" @@ -6937,9 +6812,9 @@ dependencies = [ [[package]] name = "serde_arrow" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2784e59a0315568e850cb01ddadf458f8c09e28d8cfc4880c2cc08f5dc3444e0" +checksum = "4f7168b019016101c432501f4cffb94869bed2ba1083ca9df06e90e10bd6f998" dependencies = [ "arrow-array", "arrow-schema", @@ -6977,25 +6852,14 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", -] - -[[package]] -name = "serde_derive_internals" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", @@ -7012,7 +6876,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7024,18 +6888,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_tokenstream" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c49585c52c01f13c5c2ebb333f14f6885d76daa768d8a037d28017ec538c69" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "syn 2.0.117", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -7059,7 +6911,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.13.0", + "indexmap 2.14.0", "schemars 0.9.0", "schemars 1.2.1", "serde_core", @@ -7077,31 +6929,29 @@ dependencies = [ "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "indexmap 2.13.0", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", + "cfg-if 1.0.4", + "cpufeatures 0.2.17", + "digest 0.10.7", ] [[package]] name = "sha1" -version = "0.10.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" dependencies = [ "cfg-if 1.0.4", - "cpufeatures 0.2.17", - "digest 0.10.7", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -7116,6 +6966,17 @@ dependencies = [ "sha2-asm", ] +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if 1.0.4", + "cpufeatures 0.3.0", + "digest 0.11.3", +] + [[package]] name = "sha2-asm" version = "0.6.4" @@ -7125,6 +6986,12 @@ dependencies = [ "cc", ] +[[package]] +name = "sha2-const-stable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" + [[package]] name = "sharded-slab" version = "0.1.7" @@ -7147,9 +7014,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signal-hook-registry" @@ -7173,9 +7040,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "simd_cesu8" @@ -7199,23 +7066,11 @@ version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" -[[package]] -name = "simple_asn1" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 2.0.18", - "time", -] - [[package]] name = "siphasher" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" [[package]] name = "slab" @@ -7225,9 +7080,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" dependencies = [ "serde", ] @@ -7250,19 +7105,19 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "sonic-number" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5661364b38abad49cf1ade6631fcc35d2ccf882a7d68616b4228b7717feb5fba" +checksum = "3775c3390edf958191f1ab1e8c5c188907feebd0f3ce1604cb621f72961dbf32" dependencies = [ "cfg-if 1.0.4", ] @@ -7289,9 +7144,9 @@ dependencies = [ [[package]] name = "sonic-simd" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f944718c33623919878cf74b4c9361eb3024f635733922b26722b14cd3f8cc" +checksum = "f99e664ecd2d85a68c87e3c7a3cfe691f647ea9e835de984aba4d54a41f817d4" dependencies = [ "cfg-if 1.0.4", ] @@ -7331,7 +7186,7 @@ dependencies = [ "libtest-mimic", "md-5 0.10.6", "owo-colors", - "rand 0.8.5", + "rand 0.8.6", "regex", "similar", "subst", @@ -7342,9 +7197,9 @@ dependencies = [ [[package]] name = "sqlparser" -version = "0.61.0" +version = "0.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf5ea8d4d7c808e1af1cbabebca9a2abe603bcefc22294c5b95018d53200cb7" +checksum = "13c6d1b651dc4edf07eead2a0c6c78016ce971bc2c10da5266861b13f25e7cec" dependencies = [ "log", "recursive", @@ -7359,7 +7214,7 @@ checksum = "a6dd45d8fc1c79299bfbb7190e42ccbbdf6a5f52e4a6ad98d92357ea965bd289" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7393,7 +7248,7 @@ dependencies = [ "futures-util", "hashbrown 0.15.5", "hashlink", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", "memchr", "once_cell", @@ -7401,7 +7256,7 @@ dependencies = [ "rustls", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "smallvec", "thiserror 2.0.18", "tokio", @@ -7421,7 +7276,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.117", + "syn", ] [[package]] @@ -7439,10 +7294,10 @@ dependencies = [ "quote", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "sqlx-core", "sqlx-sqlite", - "syn 2.0.117", + "syn", "tokio", "url", ] @@ -7455,7 +7310,7 @@ checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" dependencies = [ "atoi", "base64", - "bitflags", + "bitflags 2.13.0", "byteorder", "bytes", "crc", @@ -7469,17 +7324,17 @@ dependencies = [ "generic-array", "hex", "hkdf", - "hmac", + "hmac 0.12.1", "itoa", "log", "md-5 0.10.6", "memchr", "once_cell", "percent-encoding", - "rand 0.8.5", + "rand 0.8.6", "rsa", - "sha1", - "sha2", + "sha1 0.10.6", + "sha2 0.10.9", "smallvec", "sqlx-core", "stringprep", @@ -7496,7 +7351,7 @@ checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" dependencies = [ "atoi", "base64", - "bitflags", + "bitflags 2.13.0", "byteorder", "crc", "dotenvy", @@ -7506,17 +7361,17 @@ dependencies = [ "futures-util", "hex", "hkdf", - "hmac", + "hmac 0.12.1", "home", "itoa", "log", "md-5 0.10.6", "memchr", "once_cell", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "smallvec", "sqlx-core", "stringprep", @@ -7549,6 +7404,40 @@ dependencies = [ "url", ] +[[package]] +name = "stabby" +version = "72.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b834ec7ced12095fea1e4b07dcb7e8cf2b59b18afa3eac52494d835965a5ec" +dependencies = [ + "rustversion", + "stabby-abi", +] + +[[package]] +name = "stabby-abi" +version = "72.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1a4f477858a5bdf927c9fab7f579899de9b13e39f8b3b3b300c89fbab632f4" +dependencies = [ + "rustc_version", + "rustversion", + "sha2-const-stable", + "stabby-macros", +] + +[[package]] +name = "stabby-macros" +version = "72.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b31c4b2434980b67ad83f300a58088ba14d59454dcd79ba3d87419bbd924d31e" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -7557,15 +7446,15 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stacker" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d74a23609d509411d10e2176dc2a4346e3b4aea2e7b1869f19fdedbc71c013" +checksum = "640c8cdd92b6b12f5bcb1803ca3bbf5ab96e5e6b6b96b9ab77dabe9e880b3190" dependencies = [ "cc", "cfg-if 1.0.4", "libc", "psm", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -7607,7 +7496,7 @@ version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ - "strum_macros", + "strum_macros 0.27.2", ] [[package]] @@ -7619,42 +7508,29 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] -name = "subst" -version = "0.3.8" +name = "strum_macros" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a9a86e5144f63c2d18334698269a8bfae6eece345c70b64821ea5b35054ec99" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" dependencies = [ - "memchr", - "unicode-width 0.1.14", + "heck", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "substrait" -version = "0.62.2" +name = "subst" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62fc4b483a129b9772ccb9c3f7945a472112fdd9140da87f8a4e7f1d44e045d0" +checksum = "0a9a86e5144f63c2d18334698269a8bfae6eece345c70b64821ea5b35054ec99" dependencies = [ - "heck", - "pbjson", - "pbjson-build", - "pbjson-types", - "prettyplease", - "prost", - "prost-build", - "prost-types", - "regress", - "schemars 0.8.22", - "semver", - "serde", - "serde_json", - "serde_yaml", - "syn 2.0.117", - "typify", - "walkdir", + "memchr", + "unicode-width 0.1.14", ] [[package]] @@ -7671,20 +7547,9 @@ checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" dependencies = [ "proc-macro2", "quote", @@ -7708,7 +7573,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7731,7 +7596,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags", + "bitflags 2.13.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -7765,10 +7630,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.2", + "getrandom 0.4.3", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -7803,7 +7668,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7814,7 +7679,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -7839,12 +7704,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.47" +version = "0.3.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +checksum = "18dfaaeddcb932337b5e7866ee7d0ce9b76d2fd092997146f187ec09b4558a50" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", "serde_core", @@ -7854,15 +7718,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.27" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +checksum = "c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f" dependencies = [ "num-conv", "time-core", @@ -7879,9 +7743,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "zerovec", @@ -7904,9 +7768,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.52.1" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", @@ -7914,7 +7778,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.3", + "socket2 0.6.4", "tokio-macros", "windows-sys 0.61.2", ] @@ -7927,17 +7791,17 @@ checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "tokio-retry" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40f644c762e9d396831ae2f8935c954b0d758c4532e924bead0f666d0c1c8640" +checksum = "4a129d95275ebf4c493ec53bf0f8cd95f5ac161bc4f381700809a54f595d4470" dependencies = [ "pin-project-lite", - "rand 0.10.1", + "rand 0.10.2", "tokio", ] @@ -7999,9 +7863,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.0.1+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] @@ -8012,7 +7876,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -8022,23 +7886,23 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.5+spec-1.1.0" +version = "0.25.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" dependencies = [ - "indexmap 2.13.0", - "toml_datetime 1.0.1+spec-1.1.0", + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", - "winnow 1.0.0", + "winnow 1.0.3", ] [[package]] name = "toml_parser" -version = "1.0.10+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.0", + "winnow 1.0.3", ] [[package]] @@ -8064,20 +7928,20 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ - "bitflags", + "bitflags 2.13.0", "bytes", "futures-util", - "http 1.4.0", + "http 1.4.2", "http-body 1.0.1", - "iri-string", "pin-project-lite", "tower", "tower-layer", "tower-service", + "url", ] [[package]] @@ -8125,7 +7989,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -8186,32 +8050,14 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tstr" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f8e0294f14baae476d0dd0a2d780b2e24d66e349a9de876f5126777a37bdba7" -dependencies = [ - "tstr_proc_macros", -] - -[[package]] -name = "tstr_proc_macros" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78122066b0cb818b8afd08f7ed22f7fdbc3e90815035726f0840d0d26c0747a" - [[package]] name = "twox-hash" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" - -[[package]] -name = "typed-arena" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" +dependencies = [ + "rand 0.9.5", +] [[package]] name = "typed-builder" @@ -8230,7 +8076,7 @@ checksum = "3c36781cc0e46a83726d9879608e4cf6c2505237e263a8eb8c24502989cfdb28" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -8247,9 +8093,9 @@ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "typetag" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2212c8a9b9bcfca32024de14998494cf9a5dfa59ea1b829de98bac374b86bf" +checksum = "c5a897b12c6c1151ad0b138b8db50252dc301f93bc3b027db05eec82aeed298c" dependencies = [ "erased-serde", "inventory", @@ -8260,13 +8106,13 @@ dependencies = [ [[package]] name = "typetag-impl" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27a7a9b72ba121f6f1f6c3632b85604cac41aedb5ddc70accbebb6cac83de846" +checksum = "cf808357c6ed7e13ba0f3277ec8d8f21b2d501274895104263985330c726c1c5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -8275,53 +8121,6 @@ version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "214ca0b2191785cbc06209b9ca1861e048e39b5ba33574b3cedd58363d5bb5f6" -[[package]] -name = "typify" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5bcc6f62eb1fa8aa4098f39b29f93dcb914e17158b76c50360911257aa629" -dependencies = [ - "typify-impl", - "typify-macro", -] - -[[package]] -name = "typify-impl" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1eb359f7ffa4f9ebe947fa11a1b2da054564502968db5f317b7e37693cb2240" -dependencies = [ - "heck", - "log", - "proc-macro2", - "quote", - "regress", - "schemars 0.8.22", - "semver", - "serde", - "serde_json", - "syn 2.0.117", - "thiserror 2.0.18", - "unicode-ident", -] - -[[package]] -name = "typify-macro" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "911c32f3c8514b048c1b228361bebb5e6d73aeec01696e8cc0e82e2ffef8ab7a" -dependencies = [ - "proc-macro2", - "quote", - "schemars 0.8.22", - "semver", - "serde", - "serde_json", - "serde_tokenstream", - "syn 2.0.117", - "typify-impl", -] - [[package]] name = "unicode-bidi" version = "0.3.18" @@ -8351,9 +8150,9 @@ checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" [[package]] name = "unicode-width" @@ -8367,12 +8166,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "unit-prefix" version = "0.5.2" @@ -8389,18 +8182,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -8439,11 +8220,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.0" +version = "1.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +checksum = "bf80a72845275afea99e7f2b434723d3bc7e38470fcd1c7ed39a599c73319a53" dependencies = [ - "getrandom 0.4.2", + "getrandom 0.4.3", "js-sys", "serde_core", "wasm-bindgen", @@ -8484,7 +8265,7 @@ dependencies = [ "nix 0.29.0", "once_cell", "pin-project", - "rand 0.9.4", + "rand 0.9.5", "socket2 0.5.10", "thiserror 2.0.18", "tokio", @@ -8565,18 +8346,9 @@ dependencies = [ [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ "wit-bindgen", ] @@ -8598,9 +8370,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" dependencies = [ "cfg-if 1.0.4", "once_cell", @@ -8611,23 +8383,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.64" +version = "0.4.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" dependencies = [ - "cfg-if 1.0.4", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8635,48 +8403,26 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap 2.13.0", - "wasm-encoder", - "wasmparser", -] - [[package]] name = "wasm-streams" version = "0.4.2" @@ -8703,23 +8449,11 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags", - "hashbrown 0.15.5", - "indexmap 2.13.0", - "semver", -] - [[package]] name = "web-sys" -version = "0.3.91" +version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" dependencies = [ "js-sys", "wasm-bindgen", @@ -8737,9 +8471,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" +checksum = "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267" dependencies = [ "rustls-pki-types", ] @@ -8750,14 +8484,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.6", + "webpki-roots 1.0.8", ] [[package]] name = "webpki-roots" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf" dependencies = [ "rustls-pki-types", ] @@ -8774,9 +8508,9 @@ dependencies = [ [[package]] name = "whoami" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6a5b12f9df4f978d2cfdb1bd3bac52433f44393342d7ee9c25f5a1c14c0f45d" +checksum = "998767ef88740d1f5b0682a9c53c24431453923962269c2db68ee43788c5a40d" dependencies = [ "libc", "libredox", @@ -8869,7 +8603,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -8880,7 +8614,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] @@ -8946,24 +8680,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -8997,30 +8713,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - [[package]] name = "windows-threading" version = "0.2.1" @@ -9042,12 +8741,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -9060,12 +8753,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -9078,24 +8765,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -9108,12 +8783,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -9126,12 +8795,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -9144,12 +8807,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -9162,12 +8819,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" version = "0.7.15" @@ -9179,106 +8830,24 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap 2.13.0", - "prettyplease", - "syn 2.0.117", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.117", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags", - "indexmap 2.13.0", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.13.0", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "writeable" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" [[package]] name = "xattr" @@ -9303,13 +8872,13 @@ dependencies = [ "clap", "crc32fast", "futures", - "http 1.4.0", + "http 1.4.2", "hyper", "lazy_static", "more-asserts", - "rand 0.10.1", + "rand 0.10.2", "redb", - "reqwest 0.13.3", + "reqwest 0.13.4", "reqwest-middleware", "serde", "serde_json", @@ -9344,13 +8913,13 @@ dependencies = [ "csv", "futures", "futures-util", - "getrandom 0.4.2", + "getrandom 0.4.3", "heapify", "itertools 0.14.0", "lazy_static", "lz4_flex", "more-asserts", - "rand 0.10.1", + "rand 0.10.2", "regex", "safe-transmute", "serde", @@ -9377,14 +8946,14 @@ dependencies = [ "chrono", "clap", "gearhash", - "http 1.4.0", + "http 1.4.2", "itertools 0.14.0", "lazy_static", "more-asserts", - "rand 0.10.1", + "rand 0.10.2", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "tempfile", "thiserror 2.0.18", "tokio", @@ -9421,8 +8990,8 @@ dependencies = [ "more-asserts", "oneshot", "pin-project", - "rand 0.10.1", - "reqwest 0.13.3", + "rand 0.10.2", + "reqwest 0.13.4", "serde", "serde_json", "shellexpand", @@ -9433,7 +9002,7 @@ dependencies = [ "tracing", "tracing-appender", "tracing-subscriber", - "whoami 2.1.1", + "whoami 2.1.2", "winapi", ] @@ -9451,9 +9020,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "yoke" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -9462,54 +9031,54 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.47" +version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" +checksum = "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.47" +version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" +checksum = "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", "synstructure", ] @@ -9521,9 +9090,9 @@ checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" [[package]] name = "zerotrie" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", @@ -9532,9 +9101,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "yoke", "zerofrom", @@ -9543,20 +9112,20 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn", ] [[package]] name = "zlib-rs" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" +checksum = "5431d5661c32445236631278f27946e444ddafe4684cac70b185272d4f9c52d5" [[package]] name = "zmij" diff --git a/Cargo.toml b/Cargo.toml index 02e7a6bfc8..f14a94af93 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -74,10 +74,10 @@ cfg-if = "1" chrono = "0.4.41" clap = { version = "4.5.48", features = ["derive", "cargo"] } dashmap = "6" -datafusion = "53.1.0" -datafusion-cli = "53.0.0" -datafusion-ffi = "53.0.0" -datafusion-sqllogictest = "53.0.0" +datafusion = "54.0.0" +datafusion-cli = "54.0.0" +datafusion-ffi = "54.0.0" +datafusion-sqllogictest = "54.0.0" derive_builder = "0.20" dirs = "6" enum-ordinalize = "4.3.0" @@ -93,7 +93,7 @@ fnv = "1.0.7" fs-err = "3.1.0" futures = "0.3" hive_metastore = "0.2.0" -home = "=0.5.11" +home = "0.5.12" http = "1.2" iceberg = { version = "0.10.0", path = "./crates/iceberg" } iceberg-catalog-glue = { version = "0.10.0", path = "./crates/catalog/glue" } diff --git a/Makefile b/Makefile index c5748718a4..003efbfd15 100644 --- a/Makefile +++ b/Makefile @@ -55,14 +55,16 @@ MSRV_VERSION := $(shell awk -F'"' '/^rust-version/ {print $$2}' Cargo.toml) check-msrv: cargo +$(MSRV_VERSION) check --workspace -PUBLIC_API_CRATES := $(shell cargo metadata --no-deps --format-version 1 | \ - jq -r '.packages[] | select(.publish == null) | "\(.name):\(.manifest_path)"') +# Evaluated inside the recipes that need it rather than with $(shell) at parse +# time, so plain `make ` invocations don't pay a cargo metadata call. +PUBLIC_API_CRATES_CMD = cargo metadata --no-deps --format-version 1 | \ + jq -r '.packages[] | select(.publish == null) | "\(.name):\(.manifest_path)"' install-cargo-public-api: cargo install --locked cargo-public-api@0.51.0 generate-public-api: install-cargo-public-api - @for entry in $(PUBLIC_API_CRATES); do \ + @for entry in $$($(PUBLIC_API_CRATES_CMD)); do \ crate=$${entry%%:*}; \ manifest=$${entry##*:}; \ crate_dir=$$(dirname "$$manifest"); \ @@ -72,7 +74,7 @@ generate-public-api: install-cargo-public-api check-public-api: install-cargo-public-api @fail=0; \ - for entry in $(PUBLIC_API_CRATES); do \ + for entry in $$($(PUBLIC_API_CRATES_CMD)); do \ crate=$${entry%%:*}; \ manifest=$${entry##*:}; \ crate_dir=$$(dirname "$$manifest"); \ diff --git a/bindings/python/DEPENDENCIES.rust.tsv b/bindings/python/DEPENDENCIES.rust.tsv index d38f10dd3f..6838cf4ee9 100644 --- a/bindings/python/DEPENDENCIES.rust.tsv +++ b/bindings/python/DEPENDENCIES.rust.tsv @@ -1,621 +1,604 @@ -crate 0BSD Apache-2.0 Apache-2.0 WITH LLVM-exception BSD-2-Clause BSD-3-Clause BSL-1.0 CC0-1.0 CDLA-Permissive-2.0 ISC LGPL-2.1-or-later MIT MIT-0 MPL-2.0 Unicode-3.0 Unlicense Zlib bzip2-1.0.6 -abi_stable@0.11.3 X X -abi_stable_derive@0.11.3 X X -abi_stable_shared@0.11.0 X X -adler2@2.0.1 X X X -aead@0.5.2 X X -aes@0.8.4 X X -aes-gcm@0.10.3 X X -ahash@0.8.12 X X -aho-corasick@1.1.4 X X -alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X -allocator-api2@0.2.21 X X -android_system_properties@0.1.5 X X -anstream@1.0.0 X X -anstyle@1.0.14 X X -anstyle-parse@1.0.0 X X -anstyle-query@1.1.5 X X -anstyle-wincon@3.0.11 X X -anyhow@1.0.103 X X -apache-avro@0.21.0 X -approx@0.5.1 X -ar_archive_writer@0.5.1 X -array-init@2.1.0 X X -arrayref@0.3.9 X -arrayvec@0.7.6 X X -arrow@58.1.0 X -arrow-arith@58.3.0 X -arrow-array@58.3.0 X X -arrow-buffer@58.3.0 X -arrow-cast@58.3.0 X -arrow-csv@58.1.0 X -arrow-data@58.3.0 X -arrow-ipc@58.1.0 X -arrow-json@58.1.0 X -arrow-ord@58.3.0 X -arrow-pyarrow@58.3.0 X -arrow-row@58.1.0 X -arrow-schema@58.3.0 X -arrow-select@58.3.0 X -arrow-string@58.3.0 X -as-any@0.3.2 X X -as_derive_utils@0.11.0 X X -async-compression@0.4.41 X X -async-ffi@0.5.0 X -async-lock@3.4.2 X X -async-trait@0.1.89 X X -atoi@2.0.0 X -atomic-waker@1.1.2 X X -autocfg@1.5.0 X X -aws-lc-rs@1.16.2 X X -aws-lc-sys@0.39.0 X X X X X -backon@1.6.0 X -base64@0.22.1 X X -base64ct@1.8.3 X X -bigdecimal@0.4.10 X X -bimap@0.6.3 X X -bitflags@2.11.0 X X -blake2@0.10.6 X X -blake3@1.8.3 X X X -block-buffer@0.10.4 X X -block-buffer@0.12.0 X X -block-padding@0.3.3 X X -bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bstr@1.12.1 X X -bumpalo@3.20.2 X X -bytemuck@1.25.0 X X X -bytemuck_derive@1.10.2 X X X -byteorder@1.5.0 X X -bytes@1.12.0 X -bzip2@0.6.1 X X -cbc@0.1.2 X X -cc@1.2.57 X X -cfg-if@0.1.10 X X -cfg-if@1.0.4 X X -chacha20@0.10.0 X X -chrono@0.4.44 X X -chrono-tz@0.10.4 X X -cipher@0.4.4 X X -clap@4.6.0 X X -clap_builder@4.6.0 X X -clap_derive@4.6.0 X X -clap_lex@1.1.0 X X -cmake@0.1.57 X X -colorchoice@1.0.5 X X -colored@3.1.1 X -combine@4.6.7 X -comfy-table@7.2.2 X -compression-codecs@0.4.37 X X -compression-core@0.4.31 X X -concurrent-queue@2.5.0 X X -const-oid@0.10.2 X X -const-oid@0.9.6 X X -const-random@0.1.18 X X -const-random-macro@0.1.16 X X -const-str@1.1.0 X -const_panic@0.2.15 X -constant_time_eq@0.4.2 X X X -core-foundation@0.10.1 X X -core-foundation@0.9.4 X X -core-foundation-sys@0.8.7 X X -core_extensions@1.5.4 X X -core_extensions_proc_macros@1.5.4 X X -countio@0.3.0 X -cpufeatures@0.2.17 X X -cpufeatures@0.3.0 X X -crc32c@0.6.8 X X -crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X -crunchy@0.2.4 X -crypto-common@0.1.7 X X -crypto-common@0.2.2 X X -csv@1.4.0 X X -csv-core@0.1.13 X X -ctor@0.6.3 X X -ctor@1.0.7 X X -ctor-proc-macro@0.0.7 X X -ctr@0.9.2 X X -darling@0.20.11 X -darling@0.23.0 X -darling_core@0.20.11 X -darling_core@0.23.0 X -darling_macro@0.20.11 X -darling_macro@0.23.0 X -dashmap@6.2.1 X -datafusion@53.1.0 X -datafusion-catalog@53.1.0 X -datafusion-catalog-listing@53.1.0 X -datafusion-common@53.1.0 X -datafusion-common-runtime@53.1.0 X -datafusion-datasource@53.1.0 X -datafusion-datasource-arrow@53.1.0 X -datafusion-datasource-csv@53.1.0 X -datafusion-datasource-json@53.1.0 X -datafusion-datasource-parquet@53.1.0 X -datafusion-doc@53.1.0 X -datafusion-execution@53.1.0 X -datafusion-expr@53.1.0 X -datafusion-expr-common@53.1.0 X -datafusion-ffi@53.1.0 X -datafusion-functions@53.1.0 X -datafusion-functions-aggregate@53.1.0 X -datafusion-functions-aggregate-common@53.1.0 X -datafusion-functions-nested@53.1.0 X -datafusion-functions-table@53.1.0 X -datafusion-functions-window@53.1.0 X -datafusion-functions-window-common@53.1.0 X -datafusion-macros@53.1.0 X -datafusion-optimizer@53.1.0 X -datafusion-physical-expr@53.1.0 X -datafusion-physical-expr-adapter@53.1.0 X -datafusion-physical-expr-common@53.1.0 X -datafusion-physical-optimizer@53.1.0 X -datafusion-physical-plan@53.1.0 X -datafusion-proto@53.1.0 X -datafusion-proto-common@53.1.0 X -datafusion-pruning@53.1.0 X -datafusion-session@53.1.0 X -datafusion-sql@53.1.0 X -der@0.7.10 X X -deranged@0.5.8 X X -derive_builder@0.20.2 X X -derive_builder_core@0.20.2 X X -derive_builder_macro@0.20.2 X X -digest@0.10.7 X X -digest@0.11.3 X X -dirs@6.0.0 X X -dirs-sys@0.5.0 X X -displaydoc@0.2.5 X X -dissimilar@1.0.11 X -dlv-list@0.5.2 X X -dtor@0.1.1 X X -dtor-proc-macro@0.0.6 X X -dunce@1.0.5 X X X -either@1.15.0 X X -equivalent@1.0.2 X X -erased-serde@0.4.10 X X -errno@0.3.14 X X -event-listener@5.4.1 X X -event-listener-strategy@0.5.4 X X -expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X -find-msvc-tools@0.1.9 X X -fixedbitset@0.5.7 X X -flatbuffers@25.12.19 X -flate2@1.1.9 X X -fnv@1.0.7 X X -foldhash@0.1.5 X -foldhash@0.2.0 X -form_urlencoded@1.2.2 X X -fs_extra@1.3.0 X -futures@0.3.32 X X -futures-channel@0.3.32 X X -futures-core@0.3.32 X X -futures-executor@0.3.32 X X -futures-io@0.3.32 X X -futures-macro@0.3.32 X X -futures-sink@0.3.32 X X -futures-task@0.3.32 X X -futures-util@0.3.32 X X -gearhash@0.1.3 X X -generational-arena@0.2.9 X -generic-array@0.14.7 X -getrandom@0.2.17 X X -getrandom@0.3.4 X X -getrandom@0.4.2 X X -ghash@0.5.1 X X -git-version@0.3.9 X -git-version-macro@0.3.9 X -glob@0.3.3 X X -gloo-timers@0.3.0 X X -half@2.7.1 X X -hashbrown@0.14.5 X X -hashbrown@0.15.5 X X -hashbrown@0.16.1 X X -hashbrown@0.17.1 X X -heapify@0.2.0 X X -heck@0.5.0 X X -hex@0.4.3 X X -hf-xet@1.5.2 X -hmac@0.12.1 X X -http@1.4.0 X X -http-body@1.0.1 X -http-body-util@0.1.3 X -httparse@1.10.1 X X -humantime@2.3.0 X X -hybrid-array@0.4.12 X X -hyper@1.8.1 X -hyper-rustls@0.27.7 X X X -hyper-util@0.1.20 X -iana-time-zone@0.1.65 X X -iana-time-zone-haiku@0.1.2 X X -iceberg@0.10.0 X -iceberg-datafusion@0.10.0 X -iceberg-storage-opendal@0.10.0 X -iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X -ident_case@1.0.1 X X -idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X -inout@0.1.4 X X -integer-encoding@3.0.4 X -inventory@0.3.22 X X -ipnet@2.12.0 X X -iri-string@0.7.11 X X -is_terminal_polyfill@1.70.2 X X -itertools@0.13.0 X X -itertools@0.14.0 X X -itoa@1.0.18 X X -jiff@0.2.23 X X -jiff-tzdb@0.1.6 X X -jiff-tzdb-platform@0.1.3 X X -jni@0.22.4 X X -jni-macros@0.22.4 X X -jni-sys@0.4.1 X X -jni-sys-macros@0.4.1 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X -jsonwebtoken@10.3.0 X -konst@0.4.3 X -konst_proc_macros@0.4.1 X -lazy_static@1.5.0 X X -lexical-core@1.0.6 X X -lexical-parse-float@1.0.6 X X -lexical-parse-integer@1.0.6 X X -lexical-util@1.0.7 X X -lexical-write-float@1.0.6 X X -lexical-write-integer@1.0.6 X X -libbz2-rs-sys@0.2.2 X -libc@0.2.183 X X -libloading@0.7.4 X -liblzma@0.4.6 X X -liblzma-sys@0.4.5 X X -libm@0.2.16 X -libredox@0.1.14 X -link-section@0.18.1 X X -linktime-proc-macro@0.2.0 X X -linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X -lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X -matchers@0.2.0 X -md-5@0.10.6 X X -md-5@0.11.0 X X -mea@0.6.3 X -memchr@2.8.0 X X -miniz_oxide@0.8.9 X X X -mio@1.2.0 X -moka@0.12.15 X X -more-asserts@0.3.1 X X X X -murmur3@0.5.2 X X -ntapi@0.4.3 X X -nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X -num-bigint-dig@0.8.6 X X -num-complex@0.4.6 X X -num-conv@0.2.0 X X -num-integer@0.1.46 X X -num-iter@0.1.45 X X -num-traits@0.2.19 X X -objc2-core-foundation@0.3.2 X X X -objc2-io-kit@0.3.2 X X X -objc2-system-configuration@0.3.2 X X X -object@0.37.3 X X -object_store@0.13.2 X X -once_cell@1.21.4 X X -once_cell_polyfill@1.70.2 X X -oneshot@0.1.13 X X -opaque-debug@0.3.1 X X -opendal@0.57.0 X -opendal-core@0.57.0 X -opendal-layer-concurrent-limit@0.57.0 X -opendal-layer-logging@0.57.0 X -opendal-layer-retry@0.57.0 X -opendal-layer-timeout@0.57.0 X -opendal-service-azdls@0.57.0 X -opendal-service-azure-common@0.57.0 X -opendal-service-fs@0.57.0 X -opendal-service-gcs@0.57.0 X -opendal-service-hf@0.57.0 X -opendal-service-oss@0.57.0 X -opendal-service-s3@0.57.0 X -openssl-probe@0.2.1 X X -option-ext@0.2.0 X -ordered-float@2.10.1 X -ordered-float@4.6.0 X -ordered-multimap@0.7.3 X -os_str_bytes@6.6.1 X X -parking@2.2.1 X X -parking_lot@0.12.5 X X -parking_lot_core@0.9.12 X X -parquet@58.1.0 X -paste@1.0.15 X X -pbkdf2@0.12.2 X X -pem@3.0.6 X -pem-rfc7468@0.7.0 X X -percent-encoding@2.3.2 X X -petgraph@0.8.3 X X -phf@0.12.1 X -phf_shared@0.12.1 X -pin-project@1.1.11 X X -pin-project-internal@1.1.11 X X -pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkcs1@0.7.5 X X -pkcs5@0.7.1 X X -pkcs8@0.10.2 X X -pkg-config@0.3.32 X X -polyval@0.6.2 X X -portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X -powerfmt@0.2.0 X X -ppv-lite86@0.2.21 X X -prettyplease@0.2.37 X X -proc-macro2@1.0.106 X X -prost@0.14.3 X -prost-derive@0.14.3 X -psm@0.1.30 X X -pyiceberg_core_rust@0.10.0 X -pyo3@0.28.3 X X -pyo3-build-config@0.28.3 X X -pyo3-ffi@0.28.3 X X -pyo3-macros@0.28.3 X X -pyo3-macros-backend@0.28.3 X X -quad-rand@0.2.3 X -quick-xml@0.39.4 X -quote@1.0.45 X X -r-efi@5.3.0 X X X -r-efi@6.0.0 X X X -rand@0.10.1 X X -rand@0.8.5 X X -rand@0.9.4 X X -rand_chacha@0.3.1 X X -rand_chacha@0.9.0 X X -rand_core@0.10.0 X X -rand_core@0.6.4 X X -rand_core@0.9.5 X X -recursive@0.1.1 X -recursive-proc-macro-impl@0.1.1 X -redb@3.1.3 X X -redox_syscall@0.5.18 X -redox_users@0.5.2 X -regex@1.12.3 X X -regex-automata@0.4.14 X X -regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X -repr_offset@0.2.2 X -reqsign-aliyun-oss@3.0.0 X -reqsign-aws-v4@3.0.0 X -reqsign-azure-storage@3.0.0 X -reqsign-core@3.0.0 X -reqsign-file-read-tokio@3.0.0 X -reqsign-google@3.0.0 X -reqwest@0.12.28 X X -reqwest@0.13.3 X X -reqwest-middleware@0.5.2 X X -ring@0.17.14 X X -roaring@0.11.3 X X -rsa@0.9.10 X X -rust-ini@0.21.3 X -rustc_version@0.4.1 X X -rustix@1.1.4 X X X -rustls@0.23.37 X X X -rustls-native-certs@0.8.3 X X X -rustls-pki-types@1.14.0 X X -rustls-platform-verifier@0.7.0 X X -rustls-platform-verifier-android@0.1.1 X X -rustls-webpki@0.103.13 X -rustversion@1.0.22 X X -ryu@1.0.23 X X -safe-transmute@0.11.3 X -salsa20@0.10.2 X X -same-file@1.0.6 X X -schannel@0.1.29 X -scopeguard@1.2.0 X X -scrypt@0.11.0 X X -security-framework@3.7.0 X X -security-framework-sys@2.17.0 X X -semver@1.0.27 X X -seq-macro@0.3.6 X X -serde@1.0.228 X X -serde-big-array@0.5.1 X X -serde_bytes@0.11.19 X X -serde_core@1.0.228 X X -serde_derive@1.0.228 X X -serde_json@1.0.149 X X -serde_repr@0.1.20 X X -serde_urlencoded@0.7.1 X X -serde_with@3.21.0 X X -serde_with_macros@3.21.0 X X -sha1@0.10.6 X X -sha2@0.10.9 X X -sha2-asm@0.6.4 X -sharded-slab@0.1.7 X -shellexpand@3.1.2 X X -shlex@1.3.0 X X -signature@2.2.0 X X -simd-adler32@0.3.8 X -simd_cesu8@1.1.1 X X -simdutf8@0.1.5 X X -simple_asn1@0.6.4 X -siphasher@1.0.2 X X -slab@0.4.12 X -smallvec@1.15.1 X X -snap@1.1.1 X -socket2@0.6.3 X X -spin@0.9.8 X -spki@0.7.3 X X -sqlparser@0.61.0 X -sqlparser_derive@0.5.0 X -stable_deref_trait@1.2.1 X X -stacker@0.1.23 X X -static_assertions@1.1.0 X X -statrs@0.18.0 X -strsim@0.11.1 X -strum@0.27.2 X -strum_macros@0.27.2 X -subtle@2.6.1 X -symlink@0.1.0 X X -syn@1.0.109 X X -syn@2.0.117 X X -sync_wrapper@1.0.2 X -synstructure@0.13.2 X -sysinfo@0.38.4 X -system-configuration@0.7.0 X X -system-configuration-sys@0.6.0 X X -tagptr@0.2.0 X X -target-lexicon@0.13.5 X -tempfile@3.27.0 X X -thiserror@2.0.18 X X -thiserror-impl@2.0.18 X X -thread_local@1.1.9 X X -thrift@0.17.0 X -time@0.3.47 X X -time-core@0.1.8 X X -time-macros@0.2.27 X X -tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X -tokio-macros@2.7.0 X -tokio-retry@0.3.1 X -tokio-rustls@0.26.4 X X -tokio-stream@0.1.18 X -tokio-util@0.7.18 X -tower@0.5.3 X -tower-http@0.6.8 X -tower-layer@0.3.3 X -tower-service@0.3.3 X -tracing@0.1.44 X -tracing-appender@0.2.5 X -tracing-attributes@0.1.31 X -tracing-core@0.1.36 X -tracing-log@0.2.0 X -tracing-serde@0.2.0 X -tracing-subscriber@0.3.23 X -try-lock@0.2.5 X -tstr@0.2.4 X -tstr_proc_macros@0.2.2 X -twox-hash@2.1.2 X -typed-arena@2.0.2 X -typed-builder@0.20.1 X X -typed-builder-macro@0.20.1 X X -typeid@1.0.3 X X -typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X -typewit@1.15.2 X -unicode-ident@1.0.24 X X X -unicode-segmentation@1.12.0 X X -unicode-width@0.2.2 X X -universal-hash@0.5.1 X X -untrusted@0.7.1 X -untrusted@0.9.0 X -url@2.5.8 X X -urlencoding@2.1.3 X -utf8_iter@1.0.4 X X -utf8parse@0.2.2 X X -uuid@1.23.0 X X -version_check@0.9.5 X X -walkdir@2.5.0 X X -want@0.3.1 X -wasi@0.11.1+wasi-snapshot-preview1 X X X -wasi@0.14.7+wasi-0.2.4 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasite@1.0.2 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -wasm-streams@0.5.0 X X -web-sys@0.3.91 X X -web-time@1.1.0 X X -webpki-root-certs@1.0.7 X -whoami@2.1.1 X X X -winapi@0.3.9 X X -winapi-i686-pc-windows-gnu@0.4.0 X X -winapi-util@0.1.11 X X -winapi-x86_64-pc-windows-gnu@0.4.0 X X -windows@0.62.2 X X -windows-collections@0.3.2 X X -windows-core@0.62.2 X X -windows-future@0.3.2 X X -windows-implement@0.60.2 X X -windows-interface@0.59.3 X X -windows-link@0.2.1 X X -windows-numerics@0.3.1 X X -windows-registry@0.6.1 X X -windows-result@0.4.1 X X -windows-strings@0.5.1 X X -windows-sys@0.48.0 X X -windows-sys@0.52.0 X X -windows-sys@0.59.0 X X -windows-sys@0.60.2 X X -windows-sys@0.61.2 X X -windows-targets@0.48.5 X X -windows-targets@0.52.6 X X -windows-targets@0.53.5 X X -windows-threading@0.2.1 X X -windows_aarch64_gnullvm@0.48.5 X X -windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X -windows_aarch64_msvc@0.48.5 X X -windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X -windows_i686_gnu@0.48.5 X X -windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X -windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X -windows_i686_msvc@0.48.5 X X -windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X -windows_x86_64_gnu@0.48.5 X X -windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X -windows_x86_64_gnullvm@0.48.5 X X -windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X -windows_x86_64_msvc@0.48.5 X X -windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -xattr@1.6.1 X X -xet-client@1.5.2 X -xet-core-structures@1.5.2 X -xet-data@1.5.2 X -xet-runtime@1.5.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X -zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X -zmij@1.0.21 X -zstd@0.13.3 X -zstd-safe@7.2.4 X X -zstd-sys@2.0.16+zstd.1.5.7 X X +crate 0BSD Apache-2.0 Apache-2.0 WITH LLVM-exception BSD-2-Clause BSD-3-Clause BSL-1.0 CC0-1.0 CDLA-Permissive-2.0 EPL-2.0 ISC LGPL-2.1-or-later MIT MIT-0 MPL-2.0 Unicode-3.0 Unlicense Zlib bzip2-1.0.6 +adler2@2.0.1 X X X +aead@0.5.2 X X +aes@0.8.4 X X +aes-gcm@0.10.3 X X +ahash@0.8.12 X X +aho-corasick@1.1.4 X X +alloc-no-stdlib@2.0.4 X +alloc-stdlib@0.2.4 X +allocator-api2@0.2.21 X X +android_system_properties@0.1.5 X X +anstream@1.0.0 X X +anstyle@1.0.14 X X +anstyle-parse@1.0.0 X X +anstyle-query@1.1.5 X X +anstyle-wincon@3.0.11 X X +anyhow@1.0.103 X X +apache-avro@0.21.0 X +approx@0.5.1 X +ar_archive_writer@0.5.2 X +array-init@2.1.0 X X +arrayref@0.3.9 X +arrayvec@0.7.8 X X +arrow@58.3.0 X +arrow-arith@58.3.0 X +arrow-array@58.3.0 X X +arrow-buffer@58.3.0 X +arrow-cast@58.3.0 X +arrow-csv@58.3.0 X +arrow-data@58.3.0 X +arrow-ipc@58.3.0 X +arrow-json@58.3.0 X +arrow-ord@58.3.0 X +arrow-pyarrow@58.3.0 X +arrow-row@58.3.0 X +arrow-schema@58.3.0 X +arrow-select@58.3.0 X +arrow-string@58.3.0 X +as-any@0.3.2 X X +async-compression@0.4.42 X X +async-ffi@0.5.0 X +async-lock@3.4.2 X X +async-trait@0.1.89 X X +atoi@2.0.0 X +atomic-waker@1.1.2 X X +autocfg@1.5.1 X X +aws-lc-rs@1.17.1 X X +aws-lc-sys@0.42.0 X X X X X +backon@1.6.0 X +base64@0.22.1 X X +base64ct@1.8.3 X X +bigdecimal@0.4.10 X X +bimap@0.6.3 X X +bitflags@2.13.0 X X +blake2@0.10.6 X X +blake3@1.8.5 X X X +block-buffer@0.10.4 X X +block-buffer@0.12.1 X X +block-padding@0.3.3 X X +bnum@0.12.1 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bstr@1.12.3 X X +bumpalo@3.20.3 X X +bytemuck@1.25.0 X X X +bytemuck_derive@1.10.2 X X X +byteorder@1.5.0 X X +bytes@1.12.0 X +bzip2@0.6.1 X X +cbc@0.1.2 X X +cc@1.2.66 X X +cfg-if@0.1.10 X X +cfg-if@1.0.4 X X +chacha20@0.10.1 X X +chrono@0.4.45 X X +chrono-tz@0.10.4 X X +cipher@0.4.4 X X +clap@4.6.1 X X +clap_builder@4.6.0 X X +clap_derive@4.6.1 X X +clap_lex@1.1.0 X X +cmake@0.1.58 X X +cmov@0.5.4 X X +colorchoice@1.0.5 X X +colored@3.1.1 X +combine@4.6.7 X +comfy-table@7.2.2 X +compression-codecs@0.4.38 X X +compression-core@0.4.32 X X +concurrent-queue@2.5.0 X X +const-oid@0.10.2 X X +const-oid@0.9.6 X X +const-random@0.1.18 X X +const-random-macro@0.1.16 X X +const-str@1.1.0 X +const_panic@0.2.15 X +constant_time_eq@0.4.2 X X X +core-foundation@0.10.1 X X +core-foundation@0.9.4 X X +core-foundation-sys@0.8.7 X X +countio@0.3.0 X +cpufeatures@0.2.17 X X +cpufeatures@0.3.0 X X +crc32c@0.6.8 X X +crc32fast@1.5.0 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X +crunchy@0.2.4 X +crypto-common@0.1.7 X X +crypto-common@0.2.2 X X +csv@1.4.0 X X +csv-core@0.1.13 X X +ctor@0.6.3 X X +ctor@1.0.8 X X +ctor-proc-macro@0.0.7 X X +ctr@0.9.2 X X +ctutils@0.4.2 X X +darling@0.20.11 X +darling@0.23.0 X +darling_core@0.20.11 X +darling_core@0.23.0 X +darling_macro@0.20.11 X +darling_macro@0.23.0 X +dashmap@6.2.1 X +datafusion@54.0.0 X +datafusion-catalog@54.0.0 X +datafusion-catalog-listing@54.0.0 X +datafusion-common@54.0.0 X +datafusion-common-runtime@54.0.0 X +datafusion-datasource@54.0.0 X +datafusion-datasource-arrow@54.0.0 X +datafusion-datasource-csv@54.0.0 X +datafusion-datasource-json@54.0.0 X +datafusion-datasource-parquet@54.0.0 X +datafusion-doc@54.0.0 X +datafusion-execution@54.0.0 X +datafusion-expr@54.0.0 X +datafusion-expr-common@54.0.0 X +datafusion-ffi@54.0.0 X +datafusion-functions@54.0.0 X +datafusion-functions-aggregate@54.0.0 X +datafusion-functions-aggregate-common@54.0.0 X +datafusion-functions-nested@54.0.0 X +datafusion-functions-table@54.0.0 X +datafusion-functions-window@54.0.0 X +datafusion-functions-window-common@54.0.0 X +datafusion-macros@54.0.0 X +datafusion-optimizer@54.0.0 X +datafusion-physical-expr@54.0.0 X +datafusion-physical-expr-adapter@54.0.0 X +datafusion-physical-expr-common@54.0.0 X +datafusion-physical-optimizer@54.0.0 X +datafusion-physical-plan@54.0.0 X +datafusion-proto@54.0.0 X +datafusion-proto-common@54.0.0 X +datafusion-pruning@54.0.0 X +datafusion-session@54.0.0 X +datafusion-sql@54.0.0 X +der@0.7.10 X X +deranged@0.5.8 X X +derive_builder@0.20.2 X X +derive_builder_core@0.20.2 X X +derive_builder_macro@0.20.2 X X +digest@0.10.7 X X +digest@0.11.3 X X +dirs@6.0.0 X X +dirs-sys@0.5.0 X X +displaydoc@0.2.6 X X +dissimilar@1.0.11 X +dlv-list@0.5.2 X X +dtor@0.1.1 X X +dtor-proc-macro@0.0.6 X X +dunce@1.0.5 X X X +either@1.16.0 X X +equivalent@1.0.2 X X +erased-serde@0.4.10 X X +errno@0.3.14 X X +event-listener@5.4.1 X X +event-listener-strategy@0.5.4 X X +expect-test@1.5.1 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X +find-msvc-tools@0.1.9 X X +fixedbitset@0.5.7 X X +flatbuffers@25.12.19 X +flate2@1.1.9 X X +fnv@1.0.7 X X +foldhash@0.1.5 X +foldhash@0.2.0 X +form_urlencoded@1.2.2 X X +fs_extra@1.3.0 X +futures@0.3.32 X X +futures-channel@0.3.32 X X +futures-core@0.3.32 X X +futures-executor@0.3.32 X X +futures-io@0.3.32 X X +futures-macro@0.3.32 X X +futures-sink@0.3.32 X X +futures-task@0.3.32 X X +futures-util@0.3.32 X X +gearhash@0.1.3 X X +generic-array@0.14.7 X +getrandom@0.2.17 X X +getrandom@0.3.4 X X +getrandom@0.4.3 X X +ghash@0.5.1 X X +git-version@0.3.9 X +git-version-macro@0.3.9 X +glob@0.3.3 X X +gloo-timers@0.3.0 X X +half@2.7.1 X X +hashbrown@0.14.5 X X +hashbrown@0.15.5 X X +hashbrown@0.17.1 X X +heapify@0.2.0 X X +heck@0.5.0 X X +hex@0.4.3 X X +hf-xet@1.5.2 X +hmac@0.12.1 X X +hmac@0.13.0 X X +http@1.4.2 X X +http-body@1.0.1 X +http-body-util@0.1.3 X +httparse@1.10.1 X X +humantime@2.4.0 X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X +hyper-rustls@0.27.9 X X X +hyper-util@0.1.20 X +iana-time-zone@0.1.65 X X +iana-time-zone-haiku@0.1.2 X X +iceberg@0.10.0 X +iceberg-datafusion@0.10.0 X +iceberg-storage-opendal@0.10.0 X +iceberg_test_utils@0.10.0 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X +ident_case@1.0.1 X X +idna@1.1.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X +inout@0.1.4 X X +integer-encoding@3.0.4 X +inventory@0.3.24 X X +ipnet@2.12.0 X X +is_terminal_polyfill@1.70.2 X X +itertools@0.13.0 X X +itertools@0.14.0 X X +itoa@1.0.18 X X +jiff@0.2.31 X X +jiff-tzdb@0.1.7 X X +jiff-tzdb-platform@0.1.3 X X +jni@0.22.4 X X +jni-macros@0.22.4 X X +jni-sys@0.4.1 X X +jni-sys-macros@0.4.1 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X +konst@0.4.3 X +konst_proc_macros@0.4.1 X +lazy_static@1.5.0 X X +lexical-core@1.0.6 X X +lexical-parse-float@1.0.6 X X +lexical-parse-integer@1.0.6 X X +lexical-util@1.0.7 X X +lexical-write-float@1.0.6 X X +lexical-write-integer@1.0.6 X X +libbz2-rs-sys@0.2.5 X +libc@0.2.186 X X +libloading@0.9.0 X +liblzma@0.4.7 X X +liblzma-sys@0.4.7 X X +libm@0.2.16 X +libredox@0.1.18 X +link-section@0.19.0 X X +linktime-proc-macro@0.2.0 X X +linux-raw-sys@0.12.1 X X X +litemap@0.8.2 X +lock_api@0.4.14 X X +log@0.4.33 X X +lz4_flex@0.13.1 X +matchers@0.2.0 X +md-5@0.11.0 X X +mea@0.6.4 X +memchr@2.8.2 X X +miniz_oxide@0.8.9 X X X +mio@1.2.1 X +moka@0.12.15 X X +more-asserts@0.3.1 X X X X +murmur3@0.5.2 X X +ntapi@0.4.3 X X +nu-ansi-term@0.50.3 X +num-bigint@0.4.8 X X +num-bigint-dig@0.8.6 X X +num-complex@0.4.6 X X +num-conv@0.2.2 X X +num-integer@0.1.46 X X +num-iter@0.1.46 X X +num-traits@0.2.19 X X +objc2-core-foundation@0.3.2 X X X +objc2-io-kit@0.3.2 X X X +objc2-system-configuration@0.3.2 X X X +object@0.37.3 X X +object_store@0.13.2 X X +once_cell@1.21.4 X X +once_cell_polyfill@1.70.2 X X +oneshot@0.1.13 X X +opaque-debug@0.3.1 X X +opendal@0.57.0 X +opendal-core@0.57.0 X +opendal-layer-concurrent-limit@0.57.0 X +opendal-layer-logging@0.57.0 X +opendal-layer-retry@0.57.0 X +opendal-layer-timeout@0.57.0 X +opendal-service-azdls@0.57.0 X +opendal-service-azure-common@0.57.0 X +opendal-service-fs@0.57.0 X +opendal-service-gcs@0.57.0 X +opendal-service-hf@0.57.0 X +opendal-service-oss@0.57.0 X +opendal-service-s3@0.57.0 X +openssl-probe@0.2.1 X X +option-ext@0.2.0 X +ordered-float@2.10.1 X +ordered-float@4.6.0 X +ordered-multimap@0.7.3 X +os_str_bytes@6.6.1 X X +parking@2.2.1 X X +parking_lot@0.12.5 X X +parking_lot_core@0.9.12 X X +parquet@58.3.0 X +paste@1.0.15 X X +pbkdf2@0.12.2 X X +pem@3.0.6 X +pem-rfc7468@0.7.0 X X +percent-encoding@2.3.2 X X +petgraph@0.8.3 X X +phf@0.12.1 X +phf_shared@0.12.1 X +pin-project@1.1.13 X X +pin-project-internal@1.1.13 X X +pin-project-lite@0.2.17 X X +pkcs1@0.7.5 X X +pkcs5@0.7.1 X X +pkcs8@0.10.2 X X +pkg-config@0.3.33 X X +polyval@0.6.2 X X +portable-atomic@1.13.1 X X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X +powerfmt@0.2.0 X X +ppv-lite86@0.2.21 X X +prettyplease@0.2.37 X X +proc-macro-crate@3.5.0 X X +proc-macro2@1.0.106 X X +prost@0.14.4 X +prost-derive@0.14.4 X +psm@0.1.31 X X +pyiceberg_core_rust@0.10.0 X +pyo3@0.28.3 X X +pyo3-build-config@0.28.3 X X +pyo3-ffi@0.28.3 X X +pyo3-macros@0.28.3 X X +pyo3-macros-backend@0.28.3 X X +quad-rand@0.2.3 X +quick-xml@0.39.4 X +quick-xml@0.40.1 X +quote@1.0.46 X X +r-efi@5.3.0 X X X +r-efi@6.0.0 X X X +rand@0.10.2 X X +rand@0.8.6 X X +rand@0.9.5 X X +rand_chacha@0.3.1 X X +rand_chacha@0.9.0 X X +rand_core@0.10.1 X X +rand_core@0.6.4 X X +rand_core@0.9.5 X X +recursive@0.1.1 X +recursive-proc-macro-impl@0.1.1 X +redb@3.1.3 X X +redox_syscall@0.5.18 X +redox_users@0.5.2 X +regex@1.12.4 X X +regex-automata@0.4.14 X X +regex-lite@0.1.9 X X +regex-syntax@0.8.11 X X +reqsign-aliyun-oss@3.1.0 X +reqsign-aws-v4@3.0.1 X +reqsign-azure-storage@3.0.1 X +reqsign-core@3.0.1 X +reqsign-file-read-tokio@3.0.1 X +reqsign-google@3.0.1 X +reqwest@0.12.28 X X +reqwest@0.13.4 X X +reqwest-middleware@0.5.2 X X +ring@0.17.14 X X +roaring@0.11.4 X X +rsa@0.9.10 X X +rust-ini@0.21.3 X +rustc_version@0.4.1 X X +rustix@1.1.4 X X X +rustls@0.23.41 X X X +rustls-native-certs@0.8.4 X X X +rustls-pki-types@1.15.0 X X +rustls-platform-verifier@0.7.0 X X +rustls-platform-verifier-android@0.1.1 X X +rustls-webpki@0.103.13 X +rustversion@1.0.23 X X +ryu@1.0.23 X X +safe-transmute@0.11.3 X +salsa20@0.10.2 X X +same-file@1.0.6 X X +schannel@0.1.29 X +scopeguard@1.2.0 X X +scrypt@0.11.0 X X +security-framework@3.7.0 X X +security-framework-sys@2.17.0 X X +semver@1.0.28 X X +seq-macro@0.3.6 X X +serde@1.0.228 X X +serde-big-array@0.5.1 X X +serde_bytes@0.11.19 X X +serde_core@1.0.228 X X +serde_derive@1.0.228 X X +serde_json@1.0.150 X X +serde_repr@0.1.20 X X +serde_urlencoded@0.7.1 X X +serde_with@3.21.0 X X +serde_with_macros@3.21.0 X X +sha1@0.11.0 X X +sha2@0.10.9 X X +sha2@0.11.0 X X +sha2-asm@0.6.4 X +sha2-const-stable@0.1.0 X X +sharded-slab@0.1.7 X +shellexpand@3.1.2 X X +shlex@2.0.1 X X +signature@2.2.0 X X +simd-adler32@0.3.9 X +simd_cesu8@1.1.1 X X +simdutf8@0.1.5 X X +siphasher@1.0.3 X X +slab@0.4.12 X +smallvec@1.15.2 X X +snap@1.1.1 X +socket2@0.5.10 X X +socket2@0.6.4 X X +spin@0.9.8 X +spki@0.7.3 X X +sqlparser@0.62.0 X +sqlparser_derive@0.5.0 X +stabby@72.1.8 X X +stabby-abi@72.1.8 X X +stabby-macros@72.1.8 X X +stable_deref_trait@1.2.1 X X +stacker@0.1.24 X X +static_assertions@1.1.0 X X +statrs@0.18.0 X +strsim@0.11.1 X +strum@0.27.2 X +strum_macros@0.27.2 X +subtle@2.6.1 X +symlink@0.1.0 X X +syn@2.0.118 X X +sync_wrapper@1.0.2 X +synstructure@0.13.2 X +sysinfo@0.38.4 X +system-configuration@0.7.0 X X +system-configuration-sys@0.6.0 X X +tagptr@0.2.0 X X +target-lexicon@0.13.5 X +tempfile@3.27.0 X X +thiserror@2.0.18 X X +thiserror-impl@2.0.18 X X +thread_local@1.1.9 X X +thrift@0.17.0 X +time@0.3.53 X X +time-core@0.1.9 X X +tiny-keccak@2.0.2 X +tinystr@0.8.3 X +tokio@1.52.3 X +tokio-macros@2.7.0 X +tokio-retry@0.3.2 X +tokio-rustls@0.26.4 X X +tokio-stream@0.1.18 X +tokio-util@0.7.18 X +toml_datetime@1.1.1+spec-1.1.0 X X +toml_edit@0.25.12+spec-1.1.0 X X +toml_parser@1.1.2+spec-1.1.0 X X +tower@0.5.3 X +tower-http@0.6.11 X +tower-layer@0.3.3 X +tower-service@0.3.3 X +tracing@0.1.44 X +tracing-appender@0.2.5 X +tracing-attributes@0.1.31 X +tracing-core@0.1.36 X +tracing-log@0.2.0 X +tracing-serde@0.2.0 X +tracing-subscriber@0.3.23 X +try-lock@0.2.5 X +twox-hash@2.1.2 X +typed-builder@0.20.1 X X +typed-builder-macro@0.20.1 X X +typeid@1.0.3 X X +typenum@1.20.1 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X +typewit@1.15.2 X +unicode-ident@1.0.24 X X X +unicode-segmentation@1.13.3 X X +unicode-width@0.2.2 X X +universal-hash@0.5.1 X X +untrusted@0.9.0 X +url@2.5.8 X X +urlencoding@2.1.3 X +utf8_iter@1.0.4 X X +utf8parse@0.2.2 X X +uuid@1.23.4 X X +version_check@0.9.5 X X +walkdir@2.5.0 X X +want@0.3.1 X +wasi@0.11.1+wasi-snapshot-preview1 X X X +wasi@0.14.7+wasi-0.2.4 X X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasite@1.0.2 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +wasm-streams@0.5.0 X X +web-sys@0.3.103 X X +web-time@1.1.0 X X +webpki-root-certs@1.0.8 X +whoami@2.1.2 X X X +winapi@0.3.9 X X +winapi-i686-pc-windows-gnu@0.4.0 X X +winapi-util@0.1.11 X X +winapi-x86_64-pc-windows-gnu@0.4.0 X X +windows@0.62.2 X X +windows-collections@0.3.2 X X +windows-core@0.62.2 X X +windows-future@0.3.2 X X +windows-implement@0.60.2 X X +windows-interface@0.59.3 X X +windows-link@0.2.1 X X +windows-numerics@0.3.1 X X +windows-registry@0.6.1 X X +windows-result@0.4.1 X X +windows-strings@0.5.1 X X +windows-sys@0.48.0 X X +windows-sys@0.52.0 X X +windows-sys@0.61.2 X X +windows-targets@0.48.5 X X +windows-targets@0.52.6 X X +windows-threading@0.2.1 X X +windows_aarch64_gnullvm@0.48.5 X X +windows_aarch64_gnullvm@0.52.6 X X +windows_aarch64_msvc@0.48.5 X X +windows_aarch64_msvc@0.52.6 X X +windows_i686_gnu@0.48.5 X X +windows_i686_gnu@0.52.6 X X +windows_i686_gnullvm@0.52.6 X X +windows_i686_msvc@0.48.5 X X +windows_i686_msvc@0.52.6 X X +windows_x86_64_gnu@0.48.5 X X +windows_x86_64_gnu@0.52.6 X X +windows_x86_64_gnullvm@0.48.5 X X +windows_x86_64_gnullvm@0.52.6 X X +windows_x86_64_msvc@0.48.5 X X +windows_x86_64_msvc@0.52.6 X X +winnow@1.0.3 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +xattr@1.6.1 X X +xet-client@1.5.2 X +xet-core-structures@1.5.2 X +xet-data@1.5.2 X +xet-runtime@1.5.2 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X +zeroize@1.9.0 X X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X +zmij@1.0.21 X +zstd@0.13.3 X +zstd-safe@7.2.4 X X +zstd-sys@2.0.16+zstd.1.5.7 X X diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index 78712c1b10..0f63c850b4 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -75,7 +75,7 @@ filterwarnings = [ dev = [ "maturin>=1.9.4,<2.0", "pytest>=8.3.2", - "datafusion==52.*", + "datafusion>=52,<55", # Set a PyIceberg lower bound; otherwise the resolver may select the # unrelated 0.0.2 stub. # Keep pyarrow direct because current pyiceberg[pyarrow] releases depend on diff --git a/bindings/python/uv.lock b/bindings/python/uv.lock index 15627d00cb..3e29e05d56 100644 --- a/bindings/python/uv.lock +++ b/bindings/python/uv.lock @@ -6,15 +6,6 @@ resolution-markers = [ "python_full_version < '3.14'", ] -[[package]] -name = "annotated-doc" -version = "0.0.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, -] - [[package]] name = "annotated-types" version = "0.7.0" @@ -163,14 +154,23 @@ wheels = [ [[package]] name = "click" -version = "8.4.1" +version = "8.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9b/98/518d8e5081007684232226f475082b30087d0f585e8457db087298259f49/click-8.4.1.tar.gz", hash = "sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96", size = 353007, upload-time = "2026-05-22T04:08:37.769Z" } +sdist = { url = "https://files.pythonhosted.org/packages/76/d4/81420972a676e8ffea40450d8c8c92943e7218a78fe9b64359836cc9876b/click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6", size = 338000, upload-time = "2026-06-24T17:45:15.148Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/e2/79c688af8b210d232694e31e59da9f6ec747bae31c3f5946e4e9b98860d5/click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76", size = 119243, upload-time = "2026-06-24T17:45:13.73Z" }, +] + +[[package]] +name = "cloudpickle" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl", hash = "sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2", size = 116639, upload-time = "2026-05-22T04:08:35.26Z" }, + { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" }, ] [[package]] @@ -184,19 +184,25 @@ wheels = [ [[package]] name = "datafusion" -version = "52.3.0" +version = "54.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "cloudpickle" }, { name = "pyarrow" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/db/d4/a5ad7b665a80008901892fde61dc667318db0652a955d706ddca3a224b5a/datafusion-52.3.0.tar.gz", hash = "sha256:2e8b02ad142b1a0d673f035d96a0944a640ac78275003d7e453cee4afe4a20a4", size = 205026, upload-time = "2026-03-16T10:54:07.739Z" } +sdist = { url = "https://files.pythonhosted.org/packages/60/90/886f7e9cf827f07ebd60bd293e54e0a028a50dd49bbaef0ee42aae1981ea/datafusion-54.0.0.tar.gz", hash = "sha256:cfe7e8dfc026efc05824f49b53ad6a72caf5c2d6820759b6212a09e245a427ed", size = 276448, upload-time = "2026-06-29T11:19:34.816Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/55/63/1bb0737988cefa77274b459d64fa4b57ba4cf755639a39733e9581b5d599/datafusion-52.3.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:a73f02406b2985b9145dd97f8221a929c9ef3289a8ba64c6b52043e240938528", size = 31503230, upload-time = "2026-03-16T10:53:50.312Z" }, - { url = "https://files.pythonhosted.org/packages/d6/e3/ea3b79239953c3044d19d8e9581015da025b6640796db03799e435b17910/datafusion-52.3.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:118a1f0add6a3f91fcbc90c71819fe08750e2981637d5e7b346e099e94a20b8b", size = 28159497, upload-time = "2026-03-16T10:53:54.032Z" }, - { url = "https://files.pythonhosted.org/packages/24/c8/7d325feb4b7509ae03857fd7e164e95ec72e8c9f3dfd3178ec7f80d53977/datafusion-52.3.0-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:253ce7aee5fe84bd6ee290c20608114114bdb5115852617f97d3855d36ad9341", size = 30769154, upload-time = "2026-03-16T10:53:57.835Z" }, - { url = "https://files.pythonhosted.org/packages/37/ee/478689c69b3cb1ccabb2d52feac0c181f6cdf20b51a81df35344b1dab9a6/datafusion-52.3.0-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2af3469d2f06959bec88579ab107a72f965de18b32e607069bbdd0b859ed8dbb", size = 33060335, upload-time = "2026-03-16T10:54:01.715Z" }, - { url = "https://files.pythonhosted.org/packages/1c/48/01906ab5c1a70373c6874ac5192d03646fa7b94d9ff06e3f676cb6b0f43f/datafusion-52.3.0-cp310-abi3-win_amd64.whl", hash = "sha256:9fb35738cf4dbff672dbcfffc7332813024cb0ad2ab8cda1fb90b9054277ab0c", size = 33765807, upload-time = "2026-03-16T10:54:05.728Z" }, + { url = "https://files.pythonhosted.org/packages/46/58/4c5b981e3d9ade32a906c15a4941eef50c9b862781cdc14bf4dff48d026a/datafusion-54.0.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:946f55e48b8d523d7b4ac106bdf588b4493c2c66f81877d6952aafeaf7c3ec73", size = 39810553, upload-time = "2026-06-29T11:19:02.1Z" }, + { url = "https://files.pythonhosted.org/packages/66/e5/5e4dbd42ce9a2affb3be90d9ab17cebde1a6f28b0d9fb4b83d612d5c8e42/datafusion-54.0.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:2a3bf43185c7e43e25242e5fb17b6a11b86bf976434c0bc493fdedbd9a080969", size = 37145255, upload-time = "2026-06-29T11:19:05.491Z" }, + { url = "https://files.pythonhosted.org/packages/c6/5e/dbb9e6e3e5006d34f295d7ac73f1302c8f2df140666402a06e6c55028edb/datafusion-54.0.0-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9432bf162381e9282cbc74915b8b773895de18be836f7e3f6d0de4d981f24630", size = 38853856, upload-time = "2026-06-29T11:19:08.732Z" }, + { url = "https://files.pythonhosted.org/packages/a8/81/e69008e3479f4d0134875bc4ae39503bedcd55ca2597e71392c963c651b4/datafusion-54.0.0-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3bcd4d213fa74710e75e6e182cc468c2bdbc5ffc74a08c8155d414fbbfa1b3f6", size = 41050149, upload-time = "2026-06-29T11:19:12.108Z" }, + { url = "https://files.pythonhosted.org/packages/61/d4/8ba6e3fe3291c9ccc94b5ca3ec3c1fbcbfbe5ece5ffb965e4550844e2c56/datafusion-54.0.0-cp310-abi3-win_amd64.whl", hash = "sha256:b934e097e1bdca7d5768a81ac1bc4a1812cb459269f8b1a5d892a5d930f18376", size = 43444869, upload-time = "2026-06-29T11:19:15.963Z" }, + { url = "https://files.pythonhosted.org/packages/9d/41/5608323226f21a0fa180823c531dbc0ed270e9b694f299b7647505cb6a06/datafusion-54.0.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:c4e79048da82ad89b768bd0be7df39254cd2a0afe2b719d1f129e8a7229af683", size = 39796248, upload-time = "2026-06-29T11:19:19.208Z" }, + { url = "https://files.pythonhosted.org/packages/18/81/392ee323104ab14ca689384723b69e137064a828233c165574f97a74c0e9/datafusion-54.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fe57038003b18e28b90752c1e32b44af74ec4f552a1904aee725e1129a00c447", size = 37153577, upload-time = "2026-06-29T11:19:22.397Z" }, + { url = "https://files.pythonhosted.org/packages/40/c4/ebd5ef5349ecbea7f5f9da76c213581c13e7bbe1b5735c9925b279eeb4eb/datafusion-54.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:574f642832a106456cfc4f32aa82484c504fc32f4be2b510202bcb579de8e6d1", size = 38849839, upload-time = "2026-06-29T11:19:25.783Z" }, + { url = "https://files.pythonhosted.org/packages/5a/b9/2383d30d317bb913cab97dbf2e6e1d5f37f594860d5c5bc176e025cf7d4a/datafusion-54.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:796fd5683927443c5bc61999d00b9007ef9b5ce107725ea8d241df718860985d", size = 41074623, upload-time = "2026-06-29T11:19:29.119Z" }, + { url = "https://files.pythonhosted.org/packages/35/5c/553fd1107dede0a56727fda7216a7198d41394f2d19697f4fb104cc695ea/datafusion-54.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:64973c63874ec31670dd97b32b18af7b07fad679cb20d58ed154038e3a5c204e", size = 43438801, upload-time = "2026-06-29T11:19:32.799Z" }, ] [[package]] @@ -406,7 +412,7 @@ wheels = [ [[package]] name = "huggingface-hub" -version = "1.21.0" +version = "1.22.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -417,12 +423,11 @@ dependencies = [ { name = "packaging" }, { name = "pyyaml" }, { name = "tqdm" }, - { name = "typer" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8f/77/ce3331f40cb2d021fe9b24c46c41e72faf74493621138e5eddac12bf5e1c/huggingface_hub-1.21.0.tar.gz", hash = "sha256:a44f222cd8f2f7c2eade30b5e7a04cac984a3235fa61ea87a0a5a31db77d561f", size = 861572, upload-time = "2026-06-25T13:09:26.356Z" } +sdist = { url = "https://files.pythonhosted.org/packages/77/ea/dc54b4dda5841cb3a7812a178695be776e7c15c597887c2ed892f17d015a/huggingface_hub-1.22.0.tar.gz", hash = "sha256:e2dfe5fe1ec3b87ba2709aa34555b23e3f3f6ad4d7255238e13ddb8348e6bbfa", size = 914232, upload-time = "2026-07-03T09:46:44.685Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/85/b505a99a133d9f99d21af182af416e9baef70bdeef019983479651e494c2/huggingface_hub-1.21.0-py3-none-any.whl", hash = "sha256:eadaa3678c512c82aea69e8675d90a184861e68de32f1105668628b4dce0e7cd", size = 721078, upload-time = "2026-06-25T13:09:24.402Z" }, + { url = "https://files.pythonhosted.org/packages/64/9c/a1a377265abd8b823a2c661c665028ccb6b9fba1ca9d08e52ff679c20ecd/huggingface_hub-1.22.0-py3-none-any.whl", hash = "sha256:b09e19309ae09ee0a71892701c4fe70af39ab4e00817321dc62f2289a977249b", size = 765085, upload-time = "2026-07-03T09:46:42.832Z" }, ] [[package]] @@ -891,7 +896,7 @@ dev = [ [package.metadata.requires-dev] dev = [ - { name = "datafusion", specifier = "==52.*" }, + { name = "datafusion", specifier = ">=52,<55" }, { name = "fastavro", specifier = ">=1.11.1" }, { name = "huggingface-hub", specifier = ">=0.20" }, { name = "maturin", specifier = ">=1.9.4,<2.0" }, @@ -1111,15 +1116,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/76/6d163cfac87b632216f71879e6b2cf17163f773ff59c00b5ff4900a80fa3/rich-14.3.4-py3-none-any.whl", hash = "sha256:07e7adb4690f68864777b1450859253bed81a99a31ac321ac1817b2313558952", size = 310480, upload-time = "2026-04-11T02:57:47.484Z" }, ] -[[package]] -name = "shellingham" -version = "1.5.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, -] - [[package]] name = "six" version = "1.17.0" @@ -1276,21 +1272,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, ] -[[package]] -name = "typer" -version = "0.25.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-doc" }, - { name = "click" }, - { name = "rich" }, - { name = "shellingham" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e4/51/9aed62104cea109b820bbd6c14245af756112017d309da813ef107d42e7e/typer-0.25.1.tar.gz", hash = "sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc", size = 122276, upload-time = "2026-04-30T19:32:16.964Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl", hash = "sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89", size = 58409, upload-time = "2026-04-30T19:32:18.271Z" }, -] - [[package]] name = "typing-extensions" version = "4.15.0" diff --git a/crates/catalog/glue/DEPENDENCIES.rust.tsv b/crates/catalog/glue/DEPENDENCIES.rust.tsv index a885d1dbfc..a56d1fed5e 100644 --- a/crates/catalog/glue/DEPENDENCIES.rust.tsv +++ b/crates/catalog/glue/DEPENDENCIES.rust.tsv @@ -6,17 +6,18 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X +arc-swap@1.9.2 X X array-init@2.1.0 X X arrow-arith@58.3.0 X arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -26,52 +27,61 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X -aws-config@1.8.15 X +autocfg@1.5.1 X X +aws-config@1.8.18 X aws-credential-types@1.2.14 X -aws-lc-rs@1.16.2 X X -aws-lc-sys@0.39.0 X X X X X -aws-runtime@1.7.2 X -aws-sdk-glue@1.142.1 X -aws-sdk-sso@1.97.0 X -aws-sdk-ssooidc@1.99.0 X -aws-sdk-sts@1.101.0 X -aws-sigv4@1.4.2 X -aws-smithy-async@1.2.14 X +aws-lc-rs@1.17.1 X X +aws-lc-sys@0.42.0 X X X X X +aws-runtime@1.7.5 X +aws-sdk-glue@1.153.0 X +aws-sdk-sso@1.102.0 X +aws-sdk-ssooidc@1.104.0 X +aws-sdk-sts@1.107.0 X +aws-sigv4@1.4.5 X +aws-smithy-async@1.3.0 X aws-smithy-http@0.63.6 X -aws-smithy-http-client@1.1.12 X -aws-smithy-json@0.62.5 X +aws-smithy-http@0.64.0 X +aws-smithy-http-client@1.2.0 X +aws-smithy-json@0.62.7 X aws-smithy-observability@0.2.6 X +aws-smithy-observability@0.3.0 X aws-smithy-query@0.60.15 X -aws-smithy-runtime@1.10.3 X -aws-smithy-runtime-api@1.11.6 X -aws-smithy-types@1.4.7 X +aws-smithy-runtime@1.12.0 X +aws-smithy-runtime-api@1.13.0 X +aws-smithy-runtime-api-macros@1.1.0 X +aws-smithy-schema@0.1.0 X +aws-smithy-schema@0.2.0 X +aws-smithy-types@1.6.1 X aws-smithy-xml@0.60.15 X -aws-types@1.3.14 X +aws-types@1.3.16 X backon@1.6.0 X base64@0.22.1 X X base64-simd@0.8.0 X +base64ct@1.8.3 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X -block-buffer@0.12.0 X X +block-buffer@0.12.1 X X +block-padding@0.3.3 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X bytes-utils@0.1.4 X X -cc@1.2.57 X X +cbc@0.1.2 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X -cmake@0.1.57 X X +cmake@0.1.58 X X +cmov@0.5.4 X X combine@4.6.7 X concurrent-queue@2.5.0 X X const-oid@0.10.2 X X @@ -81,41 +91,44 @@ const-random-macro@0.1.16 X X core-foundation@0.10.1 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X +cpufeatures@0.3.0 X X crc32c@0.6.8 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X crypto-common@0.2.2 X X -ctor@1.0.7 X X +ctor@1.0.8 X X ctr@0.9.2 X X +ctutils@0.4.2 X X darling@0.20.11 X darling@0.23.0 X darling_core@0.20.11 X darling_core@0.23.0 X darling_macro@0.20.11 X darling_macro@0.23.0 X +der@0.7.10 X X deranged@0.5.8 X X derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X digest@0.11.3 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X dlv-list@0.5.2 X X dunce@1.0.5 X X X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -134,26 +147,26 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X -h2@0.4.13 X +h2@0.4.15 X half@2.7.1 X X hashbrown@0.14.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X hex@0.4.3 X X hmac@0.12.1 X X +hmac@0.13.0 X X http@0.2.12 X X -http@1.4.0 X X +http@1.4.2 X X http-body@0.4.6 X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -hybrid-array@0.4.12 X X -hyper@1.8.1 X -hyper-rustls@0.27.7 X X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X +hyper-rustls@0.27.9 X X X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X @@ -161,33 +174,32 @@ iceberg@0.10.0 X iceberg-catalog-glue@0.10.0 X iceberg-storage-opendal@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jiff@0.2.23 X X -jiff-tzdb@0.1.6 X X +jiff@0.2.31 X X +jiff-tzdb@0.1.7 X X jiff-tzdb-platform@0.1.3 X X jni@0.22.4 X X jni-macros@0.22.4 X X jni-sys@0.4.1 X X jni-sys-macros@0.4.1 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -195,27 +207,29 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -link-section@0.18.1 X X +link-section@0.19.0 X X linktime-proc-macro@0.2.0 X X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X +log@0.4.33 X X +lz4_flex@0.13.1 X md-5@0.11.0 X X -mea@0.6.3 X -memchr@2.8.0 X X +mea@0.6.4 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X +num-bigint-dig@0.8.6 X X num-complex@0.4.6 X X -num-conv@0.2.0 X X +num-conv@0.2.2 X X num-integer@0.1.46 X X +num-iter@0.1.46 X X num-traits@0.2.19 X X once_cell@1.21.4 X X opaque-debug@0.3.1 X X @@ -235,87 +249,104 @@ outref@0.5.2 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X +pbkdf2@0.12.2 X X +pem-rfc7468@0.7.0 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkcs1@0.7.5 X X +pkcs5@0.7.1 X X +pkcs8@0.10.2 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X powerfmt@0.2.0 X X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X quick-xml@0.39.4 X -quote@1.0.45 X X +quick-xml@0.40.1 X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.8.6 X X +rand@0.9.5 X X +rand_chacha@0.3.1 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X -reqsign-aws-v4@3.0.0 X -reqsign-core@3.0.0 X -reqsign-file-read-tokio@3.0.0 X +regex-syntax@0.8.11 X X +reqsign-aws-v4@3.0.1 X +reqsign-core@3.0.1 X +reqsign-file-read-tokio@3.0.1 X reqwest@0.12.28 X X -reqwest@0.13.3 X X +reqwest@0.13.4 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X +rsa@0.9.10 X X rust-ini@0.21.3 X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustls@0.23.37 X X X -rustls-native-certs@0.8.3 X X X -rustls-pki-types@1.14.0 X X +rustls@0.23.41 X X X +rustls-native-certs@0.8.4 X X X +rustls-pki-types@1.15.0 X X rustls-platform-verifier@0.7.0 X X rustls-platform-verifier-android@0.1.1 X X rustls-webpki@0.103.13 X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X +salsa20@0.10.2 X X same-file@1.0.6 X X schannel@0.1.29 X scopeguard@1.2.0 X X +scrypt@0.11.0 X X security-framework@3.7.0 X X security-framework-sys@2.17.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sha1@0.10.6 X X +sha1@0.11.0 X X sha2@0.10.9 X X +sha2@0.11.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X +shlex@2.0.1 X X signal-hook-registry@1.4.8 X X -simd-adler32@0.3.8 X +signature@2.2.0 X X +simd-adler32@0.3.9 X simd_cesu8@1.1.1 X X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X +spin@0.9.8 X +spki@0.7.3 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -323,16 +354,16 @@ thiserror@2.0.18 X X thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X -time@0.3.47 X X -time-core@0.1.8 X X +time@0.3.53 X X +time-core@0.1.9 X X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-rustls@0.26.4 X X tokio-util@0.7.18 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -346,31 +377,30 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X urlencoding@2.1.3 X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X vsimd@0.8.0 X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X wasm-streams@0.5.0 X X -web-sys@0.3.91 X X +web-sys@0.3.103 X X web-time@1.1.0 X X -webpki-root-certs@1.0.7 X +webpki-root-certs@1.0.8 X winapi-util@0.1.11 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X @@ -380,49 +410,39 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X xattr@1.6.1 X X xmlparser@0.13.6 X X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/catalog/glue/public-api.txt b/crates/catalog/glue/public-api.txt index 8b7a38da50..902daf635f 100644 --- a/crates/catalog/glue/public-api.txt +++ b/crates/catalog/glue/public-api.txt @@ -29,6 +29,7 @@ pub fn iceberg_catalog_glue::GlueCatalogBuilder::fmt(&self, f: &mut core::fmt::F impl iceberg::catalog::CatalogBuilder for iceberg_catalog_glue::GlueCatalogBuilder pub type iceberg_catalog_glue::GlueCatalogBuilder::C = iceberg_catalog_glue::GlueCatalog pub fn iceberg_catalog_glue::GlueCatalogBuilder::load(self, name: impl core::convert::Into, props: std::collections::hash::map::HashMap) -> impl core::future::future::Future> + core::marker::Send +pub fn iceberg_catalog_glue::GlueCatalogBuilder::with_kms_client_factory(self, kms_client_factory: alloc::sync::Arc) -> Self pub fn iceberg_catalog_glue::GlueCatalogBuilder::with_runtime(self, runtime: iceberg::runtime::Runtime) -> Self pub fn iceberg_catalog_glue::GlueCatalogBuilder::with_storage_factory(self, storage_factory: alloc::sync::Arc) -> Self pub const iceberg_catalog_glue::AWS_ACCESS_KEY_ID: &str diff --git a/crates/catalog/glue/src/catalog.rs b/crates/catalog/glue/src/catalog.rs index 0a69797ef9..b2c93fdfbe 100644 --- a/crates/catalog/glue/src/catalog.rs +++ b/crates/catalog/glue/src/catalog.rs @@ -25,6 +25,7 @@ use async_trait::async_trait; use aws_sdk_glue::operation::create_table::CreateTableError; use aws_sdk_glue::operation::update_table::UpdateTableError; use aws_sdk_glue::types::TableInput; +use iceberg::encryption::kms::{KeyManagementClient, KmsClientFactory}; use iceberg::io::{ FileIO, FileIOBuilder, S3_ACCESS_KEY_ID, S3_ENDPOINT, S3_REGION, S3_SECRET_ACCESS_KEY, S3_SESSION_TOKEN, StorageFactory, @@ -58,6 +59,7 @@ pub const GLUE_CATALOG_PROP_WAREHOUSE: &str = "warehouse"; pub struct GlueCatalogBuilder { config: GlueCatalogConfig, storage_factory: Option>, + kms_client_factory: Option>, runtime: Option, } @@ -72,6 +74,7 @@ impl Default for GlueCatalogBuilder { props: HashMap::new(), }, storage_factory: None, + kms_client_factory: None, runtime: None, } } @@ -85,6 +88,11 @@ impl CatalogBuilder for GlueCatalogBuilder { self } + fn with_kms_client_factory(mut self, kms_client_factory: Arc) -> Self { + self.kms_client_factory = Some(kms_client_factory); + self + } + fn with_runtime(mut self, runtime: Runtime) -> Self { self.runtime = Some(runtime); self @@ -140,7 +148,11 @@ impl CatalogBuilder for GlueCatalogBuilder { Some(rt) => rt, None => Runtime::try_current()?, }; - GlueCatalog::new(self.config, self.storage_factory, runtime).await + let kms_client = match self.kms_client_factory { + Some(factory) => Some(factory.create_kms_client(&self.config.props).await?), + None => None, + }; + GlueCatalog::new(self.config, self.storage_factory, runtime, kms_client).await } } } @@ -163,6 +175,7 @@ pub struct GlueCatalog { client: GlueClient, file_io: FileIO, runtime: Runtime, + kms_client: Option>, } impl Debug for GlueCatalog { @@ -179,6 +192,7 @@ impl GlueCatalog { config: GlueCatalogConfig, storage_factory: Option>, runtime: Runtime, + kms_client: Option>, ) -> Result { let sdk_config = create_sdk_config(&config.props, config.uri.as_ref()).await; let mut file_io_props = config.props.clone(); @@ -228,6 +242,7 @@ impl GlueCatalog { client: GlueClient(client), file_io, runtime, + kms_client, }) } /// Get the catalogs `FileIO` @@ -278,7 +293,7 @@ impl GlueCatalog { let metadata = TableMetadata::read_from(&self.file_io, &metadata_location).await?; - let table = Table::builder() + let mut builder = Table::builder() .file_io(self.file_io()) .metadata_location(metadata_location) .metadata(metadata) @@ -286,8 +301,11 @@ impl GlueCatalog { NamespaceIdent::new(db_name), table_name.to_owned(), )) - .runtime(self.runtime.clone()) - .build()?; + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + let table = builder.build()?; Ok((table, version_id)) } @@ -638,13 +656,16 @@ impl Catalog for GlueCatalog { builder.send().await.map_err(from_aws_sdk_error)?; - Table::builder() + let mut builder = Table::builder() .file_io(self.file_io()) .metadata_location(metadata_location_str) .metadata(metadata) .identifier(TableIdent::new(NamespaceIdent::new(db_name), table_name)) - .runtime(self.runtime.clone()) - .build() + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + builder.build() } /// Loads a table from the Glue Catalog and constructs a `Table` object @@ -868,13 +889,16 @@ impl Catalog for GlueCatalog { .with_source(anyhow!("aws sdk error: {error:?}")) })?; - Ok(Table::builder() + let mut builder = Table::builder() .identifier(table_ident.clone()) .metadata_location(metadata_location) .metadata(metadata) .file_io(self.file_io()) - .runtime(self.runtime.clone()) - .build()?) + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + Ok(builder.build()?) } async fn update_table(&self, commit: TableCommit) -> Result { diff --git a/crates/catalog/hms/DEPENDENCIES.rust.tsv b/crates/catalog/hms/DEPENDENCIES.rust.tsv index ef7556b1bc..0efa78b082 100644 --- a/crates/catalog/hms/DEPENDENCIES.rust.tsv +++ b/crates/catalog/hms/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X @@ -16,7 +16,7 @@ arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -28,32 +28,36 @@ async-recursion@1.1.1 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X -aws-lc-rs@1.16.2 X X -aws-lc-sys@0.39.0 X X X X X +autocfg@1.5.1 X X +aws-lc-rs@1.17.1 X X +aws-lc-sys@0.42.0 X X X X X backon@1.6.0 X base64@0.22.1 X X +base64ct@1.8.3 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X -block-buffer@0.12.0 X X +block-buffer@0.12.1 X X +block-padding@0.3.3 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X -cc@1.2.57 X X +cbc@0.1.2 X X +cc@1.2.66 X X cfg-if@1.0.4 X X cfg_aliases@0.2.1 X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X -cmake@0.1.57 X X +cmake@0.1.58 X X +cmov@0.5.4 X X combine@4.6.7 X concurrent-queue@2.5.0 X X const-oid@0.10.2 X X @@ -63,16 +67,18 @@ const-random-macro@0.1.16 X X core-foundation@0.10.1 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X +cpufeatures@0.3.0 X X crc32c@0.6.8 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X crypto-common@0.2.2 X X -ctor@1.0.7 X X +ctor@1.0.8 X X ctr@0.9.2 X X +ctutils@0.4.2 X X darling@0.20.11 X darling@0.23.0 X darling_core@0.20.11 X @@ -80,24 +86,25 @@ darling_core@0.23.0 X darling_macro@0.20.11 X darling_macro@0.23.0 X dashmap@6.2.1 X +der@0.7.10 X X derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X digest@0.11.3 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X dlv-list@0.5.2 X X dunce@1.0.5 X X X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X faststr@0.2.34 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X @@ -117,24 +124,24 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X half@2.7.1 X X hashbrown@0.14.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X hex@0.4.3 X X hive_metastore@0.2.0 X hmac@0.12.1 X X -http@1.4.0 X X +hmac@0.13.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -hybrid-array@0.4.12 X X -hyper@1.8.1 X -hyper-rustls@0.27.7 X X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X +hyper-rustls@0.27.9 X X X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X @@ -142,34 +149,33 @@ iceberg@0.10.0 X iceberg-catalog-hms@0.10.0 X iceberg-storage-opendal@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X integer-encoding@4.1.0 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jiff@0.2.23 X X -jiff-tzdb@0.1.6 X X +jiff@0.2.31 X X +jiff-tzdb@0.1.7 X X jiff-tzdb-platform@0.1.3 X X jni@0.22.4 X X jni-macros@0.22.4 X X jni-sys@0.4.1 X X jni-sys-macros@0.4.1 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -177,24 +183,24 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -link-section@0.18.1 X X +link-section@0.19.0 X X linked-hash-map@0.5.6 X X linkedbytes@0.1.16 X X linktime-proc-macro@0.2.0 X X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X +log@0.4.33 X X +lz4_flex@0.13.1 X md-5@0.11.0 X X -mea@0.6.3 X -memchr@2.8.0 X X +mea@0.6.4 X +memchr@2.8.2 X X memoffset@0.9.1 X metainfo@0.7.14 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X motore@0.4.1 X X motore-macros@0.4.3 X X @@ -202,9 +208,11 @@ mur3@0.1.0 X murmur3@0.5.2 X X nix@0.29.0 X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X +num-bigint-dig@0.8.6 X X num-complex@0.4.6 X X num-integer@0.1.46 X X +num-iter@0.1.46 X X num-traits@0.2.19 X X num_enum@0.7.6 X X X num_enum_derive@0.7.6 X X X @@ -225,30 +233,35 @@ ordered-multimap@0.7.3 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X +pbkdf2@0.12.2 X X +pem-rfc7468@0.7.0 X X percent-encoding@2.3.2 X X pilota@0.11.10 X X -pin-project@1.1.11 X X -pin-project-internal@1.1.11 X X +pin-project@1.1.13 X X +pin-project-internal@1.1.13 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkcs1@0.7.5 X X +pkcs5@0.7.1 X X +pkcs8@0.10.2 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro-crate@3.5.0 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X quick-xml@0.39.4 X -quote@1.0.45 X X +quick-xml@0.40.1 X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.8.5 X X -rand@0.9.4 X X +rand@0.8.6 X X +rand@0.9.5 X X rand_chacha@0.3.1 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X @@ -256,68 +269,75 @@ rand_core@0.9.5 X X redox_syscall@0.5.18 X ref-cast@1.0.25 X X ref-cast-impl@1.0.25 X X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X -reqsign-aws-v4@3.0.0 X -reqsign-core@3.0.0 X -reqsign-file-read-tokio@3.0.0 X +regex-syntax@0.8.11 X X +reqsign-aws-v4@3.0.1 X +reqsign-core@3.0.1 X +reqsign-file-read-tokio@3.0.1 X reqwest@0.12.28 X X -reqwest@0.13.3 X X +reqwest@0.13.4 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X +rsa@0.9.10 X X rust-ini@0.21.3 X -rustc-hash@2.1.1 X X +rustc-hash@2.1.3 X X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustls@0.23.37 X X X -rustls-native-certs@0.8.3 X X X -rustls-pki-types@1.14.0 X X +rustls@0.23.41 X X X +rustls-native-certs@0.8.4 X X X +rustls-pki-types@1.15.0 X X rustls-platform-verifier@0.7.0 X X rustls-platform-verifier-android@0.1.1 X X rustls-webpki@0.103.13 X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X +salsa20@0.10.2 X X same-file@1.0.6 X X schannel@0.1.29 X scopeguard@1.2.0 X X +scrypt@0.11.0 X X security-framework@3.7.0 X X security-framework-sys@2.17.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X -sha1@0.10.6 X X +sha1@0.11.0 X X sha2@0.10.9 X X +sha2@0.11.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X +shlex@2.0.1 X X signal-hook-registry@1.4.8 X X -simd-adler32@0.3.8 X +signature@2.2.0 X X +simd-adler32@0.3.9 X simd_cesu8@1.1.1 X X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X socket2@0.5.10 X X -socket2@0.6.3 X X -sonic-number@0.1.1 X +socket2@0.6.4 X X +sonic-number@0.1.2 X sonic-rs@0.3.17 X -sonic-simd@0.1.3 X +sonic-simd@0.1.4 X +spin@0.9.8 X +spki@0.7.3 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -328,17 +348,17 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-rustls@0.26.4 X X tokio-stream@0.1.18 X tokio-util@0.7.18 X -toml_datetime@1.0.1+spec-1.1.0 X X -toml_edit@0.25.5+spec-1.1.0 X X -toml_parser@1.0.10+spec-1.1.0 X X +toml_datetime@1.1.1+spec-1.1.0 X X +toml_edit@0.25.12+spec-1.1.0 X X +toml_parser@1.1.2+spec-1.1.0 X X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -352,31 +372,30 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X volo@0.10.7 X X volo-thrift@0.10.8 X X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X wasm-streams@0.5.0 X X -web-sys@0.3.91 X X +web-sys@0.3.103 X X web-time@1.1.0 X X -webpki-root-certs@1.0.7 X +webpki-root-certs@1.0.8 X winapi-util@0.1.11 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X @@ -386,49 +405,39 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -winnow@1.0.0 X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X +winnow@1.0.3 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X xattr@1.6.1 X X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/catalog/hms/public-api.txt b/crates/catalog/hms/public-api.txt index 744819c437..9ea5f553b3 100644 --- a/crates/catalog/hms/public-api.txt +++ b/crates/catalog/hms/public-api.txt @@ -35,6 +35,7 @@ pub fn iceberg_catalog_hms::HmsCatalogBuilder::fmt(&self, f: &mut core::fmt::For impl iceberg::catalog::CatalogBuilder for iceberg_catalog_hms::HmsCatalogBuilder pub type iceberg_catalog_hms::HmsCatalogBuilder::C = iceberg_catalog_hms::HmsCatalog pub fn iceberg_catalog_hms::HmsCatalogBuilder::load(self, name: impl core::convert::Into, props: std::collections::hash::map::HashMap) -> impl core::future::future::Future> + core::marker::Send +pub fn iceberg_catalog_hms::HmsCatalogBuilder::with_kms_client_factory(self, kms_client_factory: alloc::sync::Arc) -> Self pub fn iceberg_catalog_hms::HmsCatalogBuilder::with_runtime(self, runtime: iceberg::runtime::Runtime) -> Self pub fn iceberg_catalog_hms::HmsCatalogBuilder::with_storage_factory(self, storage_factory: alloc::sync::Arc) -> Self pub const iceberg_catalog_hms::HMS_CATALOG_PROP_THRIFT_TRANSPORT: &str diff --git a/crates/catalog/hms/src/catalog.rs b/crates/catalog/hms/src/catalog.rs index 0f15890c77..d54b9acf65 100644 --- a/crates/catalog/hms/src/catalog.rs +++ b/crates/catalog/hms/src/catalog.rs @@ -26,6 +26,7 @@ use hive_metastore::{ ThriftHiveMetastoreClient, ThriftHiveMetastoreClientBuilder, ThriftHiveMetastoreGetDatabaseException, ThriftHiveMetastoreGetTableException, }; +use iceberg::encryption::kms::{KeyManagementClient, KmsClientFactory}; use iceberg::io::{FileIO, FileIOBuilder, StorageFactory}; use iceberg::spec::{TableMetadata, TableMetadataBuilder}; use iceberg::table::Table; @@ -56,6 +57,7 @@ pub const HMS_CATALOG_PROP_WAREHOUSE: &str = "warehouse"; pub struct HmsCatalogBuilder { config: HmsCatalogConfig, storage_factory: Option>, + kms_client_factory: Option>, runtime: Option, } @@ -70,6 +72,7 @@ impl Default for HmsCatalogBuilder { props: HashMap::new(), }, storage_factory: None, + kms_client_factory: None, runtime: None, } } @@ -83,6 +86,11 @@ impl CatalogBuilder for HmsCatalogBuilder { self } + fn with_kms_client_factory(mut self, kms_client_factory: Arc) -> Self { + self.kms_client_factory = Some(kms_client_factory); + self + } + fn with_runtime(mut self, runtime: Runtime) -> Self { self.runtime = Some(runtime); self @@ -123,7 +131,12 @@ impl CatalogBuilder for HmsCatalogBuilder { }) .collect(); - let result = (|| -> Result { + async move { + let kms_client = match self.kms_client_factory { + Some(factory) => Some(factory.create_kms_client(&self.config.props).await?), + None => None, + }; + if self.config.name.is_none() { return Err(Error::new( ErrorKind::DataInvalid, @@ -146,10 +159,8 @@ impl CatalogBuilder for HmsCatalogBuilder { Some(rt) => rt, None => Runtime::try_current()?, }; - HmsCatalog::new(self.config, self.storage_factory, runtime) - })(); - - std::future::ready(result) + HmsCatalog::new(self.config, self.storage_factory, runtime, kms_client) + } } } @@ -182,6 +193,7 @@ pub struct HmsCatalog { client: HmsClient, file_io: FileIO, runtime: Runtime, + kms_client: Option>, } impl Debug for HmsCatalog { @@ -198,6 +210,7 @@ impl HmsCatalog { config: HmsCatalogConfig, storage_factory: Option>, runtime: Runtime, + kms_client: Option>, ) -> Result { let address = config .address @@ -238,6 +251,7 @@ impl HmsCatalog { client: HmsClient(client), file_io, runtime, + kms_client, }) } /// Get the catalogs `FileIO` @@ -539,13 +553,16 @@ impl Catalog for HmsCatalog { .await .map_err(from_thrift_error)?; - Table::builder() + let mut builder = Table::builder() .file_io(self.file_io()) .metadata_location(metadata_location_str) .metadata(metadata) .identifier(TableIdent::new(NamespaceIdent::new(db_name), table_name)) - .runtime(self.runtime.clone()) - .build() + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + builder.build() } /// Loads a table from the Hive Metastore and constructs a `Table` object @@ -575,7 +592,7 @@ impl Catalog for HmsCatalog { let metadata = TableMetadata::read_from(&self.file_io, &metadata_location).await?; - Table::builder() + let mut builder = Table::builder() .file_io(self.file_io()) .metadata_location(metadata_location) .metadata(metadata) @@ -583,8 +600,11 @@ impl Catalog for HmsCatalog { NamespaceIdent::new(db_name), table.name.clone(), )) - .runtime(self.runtime.clone()) - .build() + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + builder.build() } /// Asynchronously drops a table from the database. diff --git a/crates/catalog/loader/DEPENDENCIES.rust.tsv b/crates/catalog/loader/DEPENDENCIES.rust.tsv index 06483eafa9..96f098af17 100644 --- a/crates/catalog/loader/DEPENDENCIES.rust.tsv +++ b/crates/catalog/loader/DEPENDENCIES.rust.tsv @@ -6,18 +6,19 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X allocator-api2@0.2.21 X X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X +arc-swap@1.9.2 X X array-init@2.1.0 X X arrow-arith@58.3.0 X arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -29,54 +30,63 @@ async-recursion@1.1.1 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X -aws-config@1.8.15 X +autocfg@1.5.1 X X +aws-config@1.8.18 X aws-credential-types@1.2.14 X -aws-lc-rs@1.16.2 X X -aws-lc-sys@0.39.0 X X X X X -aws-runtime@1.7.2 X -aws-sdk-glue@1.142.1 X -aws-sdk-s3tables@1.54.0 X -aws-sdk-sso@1.97.0 X -aws-sdk-ssooidc@1.99.0 X -aws-sdk-sts@1.101.0 X -aws-sigv4@1.4.2 X -aws-smithy-async@1.2.14 X +aws-lc-rs@1.17.1 X X +aws-lc-sys@0.42.0 X X X X X +aws-runtime@1.7.5 X +aws-sdk-glue@1.153.0 X +aws-sdk-s3tables@1.59.0 X +aws-sdk-sso@1.102.0 X +aws-sdk-ssooidc@1.104.0 X +aws-sdk-sts@1.107.0 X +aws-sigv4@1.4.5 X +aws-smithy-async@1.3.0 X aws-smithy-http@0.63.6 X -aws-smithy-http-client@1.1.12 X -aws-smithy-json@0.62.5 X +aws-smithy-http@0.64.0 X +aws-smithy-http-client@1.2.0 X +aws-smithy-json@0.62.7 X aws-smithy-observability@0.2.6 X +aws-smithy-observability@0.3.0 X aws-smithy-query@0.60.15 X -aws-smithy-runtime@1.10.3 X -aws-smithy-runtime-api@1.11.6 X -aws-smithy-types@1.4.7 X +aws-smithy-runtime@1.12.0 X +aws-smithy-runtime-api@1.13.0 X +aws-smithy-runtime-api-macros@1.1.0 X +aws-smithy-schema@0.1.0 X +aws-smithy-schema@0.2.0 X +aws-smithy-types@1.6.1 X aws-smithy-xml@0.60.15 X -aws-types@1.3.14 X +aws-types@1.3.16 X backon@1.6.0 X base64@0.22.1 X X base64-simd@0.8.0 X +base64ct@1.8.3 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X -block-buffer@0.12.0 X X +block-buffer@0.12.1 X X +block-padding@0.3.3 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X bytes-utils@0.1.4 X X -cc@1.2.57 X X +cbc@0.1.2 X X +cc@1.2.66 X X cfg-if@1.0.4 X X cfg_aliases@0.2.1 X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X -cmake@0.1.57 X X +cmake@0.1.58 X X +cmov@0.5.4 X X combine@4.6.7 X concurrent-queue@2.5.0 X X const-oid@0.10.2 X X @@ -86,19 +96,21 @@ const-random-macro@0.1.16 X X core-foundation@0.10.1 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X +cpufeatures@0.3.0 X X crc@3.4.0 X X -crc-catalog@2.4.0 X X +crc-catalog@2.5.0 X X crc32c@0.6.8 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-queue@0.3.12 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-queue@0.3.13 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X crypto-common@0.2.2 X X -ctor@1.0.7 X X +ctor@1.0.8 X X ctr@0.9.2 X X +ctutils@0.4.2 X X darling@0.20.11 X darling@0.23.0 X darling_core@0.20.11 X @@ -106,25 +118,26 @@ darling_core@0.23.0 X darling_macro@0.20.11 X darling_macro@0.23.0 X dashmap@6.2.1 X +der@0.7.10 X X deranged@0.5.8 X X derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X digest@0.11.3 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X dlv-list@0.5.2 X X dunce@1.0.5 X X X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X faststr@0.2.34 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X @@ -147,30 +160,30 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X -h2@0.4.13 X +h2@0.4.15 X half@2.7.1 X X hashbrown@0.14.5 X X hashbrown@0.15.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X hashlink@0.10.0 X X heck@0.5.0 X X hex@0.4.3 X X hive_metastore@0.2.0 X hmac@0.12.1 X X +hmac@0.13.0 X X http@0.2.12 X X -http@1.4.0 X X +http@1.4.2 X X http-body@0.4.6 X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X httpdate@1.0.3 X X -hybrid-array@0.4.12 X X -hyper@1.8.1 X -hyper-rustls@0.27.7 X X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X +hyper-rustls@0.27.9 X X X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X @@ -183,34 +196,33 @@ iceberg-catalog-s3tables@0.10.0 X iceberg-catalog-sql@0.10.0 X iceberg-storage-opendal@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X integer-encoding@4.1.0 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jiff@0.2.23 X X -jiff-tzdb@0.1.6 X X +jiff@0.2.31 X X +jiff-tzdb@0.1.7 X X jiff-tzdb-platform@0.1.3 X X jni@0.22.4 X X jni-macros@0.22.4 X X jni-sys@0.4.1 X X jni-sys-macros@0.4.1 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -218,25 +230,25 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X libsqlite3-sys@0.30.1 X -link-section@0.18.1 X X +link-section@0.19.0 X X linked-hash-map@0.5.6 X X linkedbytes@0.1.16 X X linktime-proc-macro@0.2.0 X X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X +log@0.4.33 X X +lz4_flex@0.13.1 X md-5@0.11.0 X X -mea@0.6.3 X -memchr@2.8.0 X X +mea@0.6.4 X +memchr@2.8.2 X X memoffset@0.9.1 X metainfo@0.7.14 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X motore@0.4.1 X X motore-macros@0.4.3 X X @@ -244,10 +256,12 @@ mur3@0.1.0 X murmur3@0.5.2 X X nix@0.29.0 X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X +num-bigint-dig@0.8.6 X X num-complex@0.4.6 X X -num-conv@0.2.0 X X +num-conv@0.2.2 X X num-integer@0.1.46 X X +num-iter@0.1.46 X X num-traits@0.2.19 X X num_enum@0.7.6 X X X num_enum_derive@0.7.6 X X X @@ -269,19 +283,24 @@ outref@0.5.2 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X +pbkdf2@0.12.2 X X +pem-rfc7468@0.7.0 X X percent-encoding@2.3.2 X X pilota@0.11.10 X X -pin-project@1.1.11 X X -pin-project-internal@1.1.11 X X +pin-project@1.1.13 X X +pin-project-internal@1.1.13 X X pin-project-lite@0.2.17 X X pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkcs1@0.7.5 X X +pkcs5@0.7.1 X X +pkcs8@0.10.2 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X powerfmt@0.2.0 X X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X @@ -289,11 +308,12 @@ proc-macro-crate@3.5.0 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X quick-xml@0.39.4 X -quote@1.0.45 X X +quick-xml@0.40.1 X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.8.5 X X -rand@0.9.4 X X +rand@0.8.6 X X +rand@0.9.5 X X rand_chacha@0.3.1 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X @@ -301,63 +321,70 @@ rand_core@0.9.5 X X redox_syscall@0.5.18 X ref-cast@1.0.25 X X ref-cast-impl@1.0.25 X X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X -reqsign-aws-v4@3.0.0 X -reqsign-core@3.0.0 X -reqsign-file-read-tokio@3.0.0 X +regex-syntax@0.8.11 X X +reqsign-aws-v4@3.0.1 X +reqsign-core@3.0.1 X +reqsign-file-read-tokio@3.0.1 X reqwest@0.12.28 X X -reqwest@0.13.3 X X +reqwest@0.13.4 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X +rsa@0.9.10 X X rust-ini@0.21.3 X -rustc-hash@2.1.1 X X +rustc-hash@2.1.3 X X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustls@0.23.37 X X X -rustls-native-certs@0.8.3 X X X -rustls-pki-types@1.14.0 X X +rustls@0.23.41 X X X +rustls-native-certs@0.8.4 X X X +rustls-pki-types@1.15.0 X X rustls-platform-verifier@0.7.0 X X rustls-platform-verifier-android@0.1.1 X X rustls-webpki@0.103.13 X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X +salsa20@0.10.2 X X same-file@1.0.6 X X schannel@0.1.29 X scopeguard@1.2.0 X X +scrypt@0.11.0 X X security-framework@3.7.0 X X security-framework-sys@2.17.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sha1@0.10.6 X X +sha1@0.11.0 X X sha2@0.10.9 X X +sha2@0.11.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X +shlex@2.0.1 X X signal-hook-registry@1.4.8 X X -simd-adler32@0.3.8 X +signature@2.2.0 X X +simd-adler32@0.3.9 X simd_cesu8@1.1.1 X X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X socket2@0.5.10 X X -socket2@0.6.3 X X -sonic-number@0.1.1 X +socket2@0.6.4 X X +sonic-number@0.1.2 X sonic-rs@0.3.17 X -sonic-simd@0.1.3 X +sonic-simd@0.1.4 X spin@0.9.8 X +spki@0.7.3 X X sqlx@0.8.6 X X sqlx-core@0.8.6 X X sqlx-sqlite@0.8.6 X X @@ -366,7 +393,7 @@ strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -376,20 +403,20 @@ thiserror-impl@1.0.69 X X thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X -time@0.3.47 X X -time-core@0.1.8 X X +time@0.3.53 X X +time-core@0.1.9 X X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-rustls@0.26.4 X X tokio-stream@0.1.18 X tokio-util@0.7.18 X -toml_datetime@1.0.1+spec-1.1.0 X X -toml_edit@0.25.5+spec-1.1.0 X X -toml_parser@1.0.10+spec-1.1.0 X X +toml_datetime@1.1.1+spec-1.1.0 X X +toml_edit@0.25.12+spec-1.1.0 X X +toml_parser@1.1.2+spec-1.1.0 X X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -403,15 +430,15 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X urlencoding@2.1.3 X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X vcpkg@0.2.15 X X version_check@0.9.5 X X volo@0.10.7 X X @@ -420,19 +447,18 @@ vsimd@0.8.0 X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X wasm-streams@0.5.0 X X -web-sys@0.3.91 X X +web-sys@0.3.103 X X web-time@1.1.0 X X -webpki-root-certs@1.0.7 X +webpki-root-certs@1.0.8 X webpki-roots@0.26.11 X -webpki-roots@1.0.6 X +webpki-roots@1.0.8 X winapi-util@0.1.11 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X @@ -442,50 +468,40 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -winnow@1.0.0 X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X +winnow@1.0.3 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X xattr@1.6.1 X X xmlparser@0.13.6 X X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/catalog/loader/public-api.txt b/crates/catalog/loader/public-api.txt index c9e50207f4..1efaf831df 100644 --- a/crates/catalog/loader/public-api.txt +++ b/crates/catalog/loader/public-api.txt @@ -6,9 +6,11 @@ impl<'a> core::convert::From<&'a str> for iceberg_catalog_loader::CatalogLoader< pub fn iceberg_catalog_loader::CatalogLoader<'a>::from(s: &'a str) -> Self pub trait iceberg_catalog_loader::BoxedCatalogBuilder: core::marker::Send pub fn iceberg_catalog_loader::BoxedCatalogBuilder::load<'async_trait>(self: alloc::boxed::Box, name: alloc::string::String, props: std::collections::hash::map::HashMap) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait +pub fn iceberg_catalog_loader::BoxedCatalogBuilder::with_kms_client_factory(self: alloc::boxed::Box, kms_client_factory: alloc::sync::Arc) -> alloc::boxed::Box pub fn iceberg_catalog_loader::BoxedCatalogBuilder::with_storage_factory(self: alloc::boxed::Box, storage_factory: alloc::sync::Arc) -> alloc::boxed::Box impl iceberg_catalog_loader::BoxedCatalogBuilder for T pub fn T::load<'async_trait>(self: alloc::boxed::Box, name: alloc::string::String, props: std::collections::hash::map::HashMap) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait +pub fn T::with_kms_client_factory(self: alloc::boxed::Box, kms_client_factory: alloc::sync::Arc) -> alloc::boxed::Box pub fn T::with_storage_factory(self: alloc::boxed::Box, storage_factory: alloc::sync::Arc) -> alloc::boxed::Box pub fn iceberg_catalog_loader::load(type: &str) -> iceberg::error::Result> pub fn iceberg_catalog_loader::supported_types() -> alloc::vec::Vec<&'static str> diff --git a/crates/catalog/loader/src/lib.rs b/crates/catalog/loader/src/lib.rs index f681337736..d45decc40e 100644 --- a/crates/catalog/loader/src/lib.rs +++ b/crates/catalog/loader/src/lib.rs @@ -19,6 +19,7 @@ use std::collections::HashMap; use std::sync::Arc; use async_trait::async_trait; +use iceberg::encryption::kms::KmsClientFactory; use iceberg::io::StorageFactory; use iceberg::{Catalog, CatalogBuilder, Error, ErrorKind, Result}; use iceberg_catalog_glue::GlueCatalogBuilder; @@ -51,6 +52,11 @@ pub trait BoxedCatalogBuilder: Send { storage_factory: Arc, ) -> Box; + fn with_kms_client_factory( + self: Box, + kms_client_factory: Arc, + ) -> Box; + async fn load( self: Box, name: String, @@ -67,6 +73,16 @@ impl BoxedCatalogBuilder for T { Box::new(CatalogBuilder::with_storage_factory(*self, storage_factory)) } + fn with_kms_client_factory( + self: Box, + kms_client_factory: Arc, + ) -> Box { + Box::new(CatalogBuilder::with_kms_client_factory( + *self, + kms_client_factory, + )) + } + async fn load( self: Box, name: String, diff --git a/crates/catalog/rest/DEPENDENCIES.rust.tsv b/crates/catalog/rest/DEPENDENCIES.rust.tsv index e9a89e2b05..2488d51300 100644 --- a/crates/catalog/rest/DEPENDENCIES.rust.tsv +++ b/crates/catalog/rest/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X @@ -16,7 +16,7 @@ arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -26,26 +26,26 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X +autocfg@1.5.1 X X backon@1.6.0 X base64@0.22.1 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X concurrent-queue@2.5.0 X X const-random@0.1.18 X X @@ -53,9 +53,9 @@ const-random-macro@0.1.16 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X ctr@0.9.2 X X @@ -69,16 +69,16 @@ derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -96,46 +96,44 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X -h2@0.4.13 X +h2@0.4.15 X half@2.7.1 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X -http@1.4.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X httpdate@1.0.3 X X -hyper@1.8.1 X +hyper@1.10.1 X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X iceberg@0.10.0 X iceberg-catalog-rest@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -143,19 +141,19 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X -memchr@2.8.0 X X +log@0.4.33 X X +lz4_flex@0.13.1 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X num-integer@0.1.46 X X num-traits@0.2.19 X X @@ -166,64 +164,64 @@ ordered-float@4.6.0 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -potential_utf@0.1.4 X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.9.5 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X scopeguard@1.2.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X -simd-adler32@0.3.8 X +shlex@2.0.1 X X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -232,12 +230,12 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-util@0.7.18 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -251,25 +249,24 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -web-sys@0.3.91 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +web-sys@0.3.103 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X windows-interface@0.59.3 X X @@ -277,39 +274,29 @@ windows-link@0.2.1 X X windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/catalog/rest/public-api.txt b/crates/catalog/rest/public-api.txt index 027df29b24..776b11c40a 100644 --- a/crates/catalog/rest/public-api.txt +++ b/crates/catalog/rest/public-api.txt @@ -64,6 +64,29 @@ impl serde_core::ser::Serialize for iceberg_catalog_rest::CreateTableRequest pub fn iceberg_catalog_rest::CreateTableRequest::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde_core::ser::Serializer>::Ok, <__S as serde_core::ser::Serializer>::Error> where __S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for iceberg_catalog_rest::CreateTableRequest pub fn iceberg_catalog_rest::CreateTableRequest::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde_core::de::Deserializer<'de> +pub struct iceberg_catalog_rest::Endpoint +impl iceberg_catalog_rest::Endpoint +pub fn iceberg_catalog_rest::Endpoint::method(&self) -> &str +pub fn iceberg_catalog_rest::Endpoint::path(&self) -> &str +impl core::clone::Clone for iceberg_catalog_rest::Endpoint +pub fn iceberg_catalog_rest::Endpoint::clone(&self) -> iceberg_catalog_rest::Endpoint +impl core::cmp::Eq for iceberg_catalog_rest::Endpoint +impl core::cmp::PartialEq for iceberg_catalog_rest::Endpoint +pub fn iceberg_catalog_rest::Endpoint::eq(&self, other: &iceberg_catalog_rest::Endpoint) -> bool +impl core::fmt::Debug for iceberg_catalog_rest::Endpoint +pub fn iceberg_catalog_rest::Endpoint::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for iceberg_catalog_rest::Endpoint +pub fn iceberg_catalog_rest::Endpoint::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::hash::Hash for iceberg_catalog_rest::Endpoint +pub fn iceberg_catalog_rest::Endpoint::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +impl core::marker::StructuralPartialEq for iceberg_catalog_rest::Endpoint +impl core::str::traits::FromStr for iceberg_catalog_rest::Endpoint +pub type iceberg_catalog_rest::Endpoint::Err = iceberg::error::Error +pub fn iceberg_catalog_rest::Endpoint::from_str(s: &str) -> core::result::Result +impl serde_core::ser::Serialize for iceberg_catalog_rest::Endpoint +pub fn iceberg_catalog_rest::Endpoint::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde_core::ser::Serializer +impl<'de> serde_core::de::Deserialize<'de> for iceberg_catalog_rest::Endpoint +pub fn iceberg_catalog_rest::Endpoint::deserialize(deserializer: D) -> core::result::Result::Error> where D: serde_core::de::Deserializer<'de> pub struct iceberg_catalog_rest::ErrorModel pub iceberg_catalog_rest::ErrorModel::code: u16 pub iceberg_catalog_rest::ErrorModel::message: alloc::string::String @@ -215,6 +238,7 @@ pub fn iceberg_catalog_rest::RestCatalogBuilder::fmt(&self, f: &mut core::fmt::F impl iceberg::catalog::CatalogBuilder for iceberg_catalog_rest::RestCatalogBuilder pub type iceberg_catalog_rest::RestCatalogBuilder::C = iceberg_catalog_rest::RestCatalog pub fn iceberg_catalog_rest::RestCatalogBuilder::load(self, name: impl core::convert::Into, props: std::collections::hash::map::HashMap) -> impl core::future::future::Future> + core::marker::Send +pub fn iceberg_catalog_rest::RestCatalogBuilder::with_kms_client_factory(self, kms_client_factory: alloc::sync::Arc) -> Self pub fn iceberg_catalog_rest::RestCatalogBuilder::with_runtime(self, runtime: iceberg::runtime::Runtime) -> Self pub fn iceberg_catalog_rest::RestCatalogBuilder::with_storage_factory(self, storage_factory: alloc::sync::Arc) -> Self pub struct iceberg_catalog_rest::StorageCredential diff --git a/crates/catalog/rest/src/catalog.rs b/crates/catalog/rest/src/catalog.rs index 0626ce5061..da05fc7e3b 100644 --- a/crates/catalog/rest/src/catalog.rs +++ b/crates/catalog/rest/src/catalog.rs @@ -23,6 +23,7 @@ use std::str::FromStr; use std::sync::Arc; use async_trait::async_trait; +use iceberg::encryption::kms::{KeyManagementClient, KmsClientFactory}; use iceberg::io::{FileIO, FileIOBuilder, StorageFactory}; use iceberg::table::Table; use iceberg::{ @@ -62,6 +63,7 @@ const PATH_V1: &str = "v1"; pub struct RestCatalogBuilder { config: RestCatalogConfig, storage_factory: Option>, + kms_client_factory: Option>, runtime: Option, } @@ -76,6 +78,7 @@ impl Default for RestCatalogBuilder { client: None, }, storage_factory: None, + kms_client_factory: None, runtime: None, } } @@ -89,6 +92,11 @@ impl CatalogBuilder for RestCatalogBuilder { self } + fn with_kms_client_factory(mut self, kms_client_factory: Arc) -> Self { + self.kms_client_factory = Some(kms_client_factory); + self + } + fn with_runtime(mut self, runtime: Runtime) -> Self { self.runtime = Some(runtime); self @@ -118,7 +126,7 @@ impl CatalogBuilder for RestCatalogBuilder { .filter(|(k, _)| k != REST_CATALOG_PROP_URI && k != REST_CATALOG_PROP_WAREHOUSE) .collect(); - let result = { + async move { if self.config.name.is_none() { Err(Error::new( ErrorKind::DataInvalid, @@ -131,11 +139,18 @@ impl CatalogBuilder for RestCatalogBuilder { )) } else { let runtime = self.runtime.unwrap_or_else(Runtime::current); - Ok(RestCatalog::new(self.config, self.storage_factory, runtime)) + let kms_client = match self.kms_client_factory { + Some(factory) => Some(factory.create_kms_client(&self.config.props).await?), + None => None, + }; + Ok(RestCatalog::new( + self.config, + self.storage_factory, + runtime, + kms_client, + )) } - }; - - std::future::ready(result) + } } } @@ -360,6 +375,8 @@ pub struct RestCatalog { /// Storage factory for creating FileIO instances. storage_factory: Option>, runtime: Runtime, + /// Optional KMS client for encrypted tables. + kms_client: Option>, } impl RestCatalog { @@ -368,12 +385,14 @@ impl RestCatalog { config: RestCatalogConfig, storage_factory: Option>, runtime: Runtime, + kms_client: Option>, ) -> Self { Self { user_config: config, ctx: OnceCell::new(), storage_factory, runtime, + kms_client, } } @@ -801,11 +820,14 @@ impl Catalog for RestCatalog { .load_file_io(Some(metadata_location), Some(config)) .await?; - let table_builder = Table::builder() + let mut table_builder = Table::builder() .identifier(table_ident.clone()) .file_io(file_io) .metadata(response.metadata) .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + table_builder = table_builder.kms_client(kms_client); + } if let Some(metadata_location) = response.metadata_location { table_builder.metadata_location(metadata_location).build() @@ -858,11 +880,14 @@ impl Catalog for RestCatalog { .load_file_io(response.metadata_location.as_deref(), Some(config)) .await?; - let table_builder = Table::builder() + let mut table_builder = Table::builder() .identifier(table_ident.clone()) .file_io(file_io) .metadata(response.metadata) .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + table_builder = table_builder.kms_client(kms_client); + } if let Some(metadata_location) = response.metadata_location { table_builder.metadata_location(metadata_location).build() @@ -993,13 +1018,16 @@ impl Catalog for RestCatalog { let file_io = self.load_file_io(Some(metadata_location), None).await?; - Table::builder() + let mut table_builder = Table::builder() .identifier(table_ident.clone()) .file_io(file_io) .metadata(response.metadata) .metadata_location(metadata_location.clone()) - .runtime(self.runtime.clone()) - .build() + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + table_builder = table_builder.kms_client(kms_client); + } + table_builder.build() } async fn update_table(&self, mut commit: TableCommit) -> Result
{ @@ -1066,13 +1094,16 @@ impl Catalog for RestCatalog { .load_file_io(Some(&response.metadata_location), None) .await?; - Table::builder() + let mut table_builder = Table::builder() .identifier(commit.identifier().clone()) .file_io(file_io) .metadata(response.metadata) .metadata_location(response.metadata_location) - .runtime(self.runtime.clone()) - .build() + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + table_builder = table_builder.kms_client(kms_client); + } + table_builder.build() } } @@ -1119,6 +1150,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); assert_eq!( @@ -1194,6 +1226,7 @@ mod tests { .build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let token = catalog.context().await.unwrap().client.token().await; @@ -1242,6 +1275,7 @@ mod tests { .build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let token = catalog.context().await.unwrap().client.token().await; @@ -1267,6 +1301,7 @@ mod tests { .build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let token = catalog.context().await.unwrap().client.token().await; @@ -1299,6 +1334,7 @@ mod tests { .build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let token = catalog.context().await.unwrap().client.token().await; @@ -1331,6 +1367,7 @@ mod tests { .build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let token = catalog.context().await.unwrap().client.token().await; @@ -1363,6 +1400,7 @@ mod tests { .build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let token = catalog.context().await.unwrap().client.token().await; @@ -1477,6 +1515,7 @@ mod tests { .build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let token = catalog.context().await.unwrap().client.token().await; @@ -1525,6 +1564,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let _namespaces = catalog.list_namespaces(None).await.unwrap(); @@ -1556,6 +1596,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let namespaces = catalog.list_namespaces(None).await.unwrap(); @@ -1608,6 +1649,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let namespaces = catalog.list_namespaces(None).await.unwrap(); @@ -1708,6 +1750,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let namespaces = catalog.list_namespaces(None).await.unwrap(); @@ -1762,6 +1805,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let namespaces = catalog @@ -1806,6 +1850,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let namespaces = catalog @@ -1840,6 +1885,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); assert!( @@ -1869,6 +1915,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); catalog @@ -1910,6 +1957,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let tables = catalog @@ -1979,6 +2027,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let tables = catalog @@ -2111,6 +2160,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let tables = catalog @@ -2156,6 +2206,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); catalog @@ -2186,6 +2237,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); assert!( @@ -2218,6 +2270,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); catalog @@ -2253,6 +2306,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let table = catalog @@ -2371,6 +2425,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let table = catalog @@ -2408,6 +2463,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let table_creation = TableCreation::builder() @@ -2558,6 +2614,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let table_creation = TableCreation::builder() @@ -2628,6 +2685,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let table1 = { @@ -2773,6 +2831,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let table1 = { @@ -2839,6 +2898,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let table_ident = TableIdent::new(NamespaceIdent::new("ns1".to_string()), "test1".to_string()); @@ -2891,6 +2951,7 @@ mod tests { RestCatalogConfig::builder().uri(server.url()).build(), Some(Arc::new(LocalFsStorageFactory)), Runtime::current(), + None, ); let table_ident = diff --git a/crates/catalog/rest/src/endpoint.rs b/crates/catalog/rest/src/endpoint.rs new file mode 100644 index 0000000000..3d2f55f19d --- /dev/null +++ b/crates/catalog/rest/src/endpoint.rs @@ -0,0 +1,162 @@ +// 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. + +//! Server capability negotiation via the `endpoints` field of `GET /v1/config`. +//! +//! A REST server may advertise the set of routes it supports in the `endpoints` +//! field of its configuration response, letting clients negotiate optional +//! capabilities instead of assuming every server implements every operation. +//! Each entry is a `"{method} {path}"` string, for example +//! `"POST /v1/{prefix}/namespaces/{namespace}/tables"`; parse one through +//! [`Endpoint`]'s [`FromStr`] implementation. +//! +//! Use [`RestCatalog::supports_endpoint`](crate::RestCatalog::supports_endpoint) +//! to check whether the connected server advertised a given [`Endpoint`]. + +use std::fmt::{self, Display, Formatter}; +use std::str::FromStr; + +use iceberg::{Error, ErrorKind}; +use reqwest::Method; +use serde::de::{Error as DeError, Visitor}; +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +/// A single route a REST server advertises support for, parsed from the +/// `endpoints` field of `GET /v1/config`. +/// +/// The wire form is `"{method} {path}"` — an HTTP method and a path template +/// separated by a single space, e.g. +/// `"POST /v1/{prefix}/namespaces/{namespace}/tables"`. Parse one with +/// [`str::parse`]: the method is validated and normalized, and the path is the +/// template the server advertises (with `{prefix}`, `{namespace}`, … +/// placeholders), compared verbatim. +#[derive(Clone, Debug, PartialEq, Eq, Hash)] +pub struct Endpoint { + method: Method, + path: String, +} + +impl Endpoint { + /// The HTTP method, e.g. `GET` or `POST`. + pub fn method(&self) -> &str { + self.method.as_str() + } + + /// The path template, e.g. `/v1/{prefix}/namespaces`. + pub fn path(&self) -> &str { + &self.path + } +} + +impl FromStr for Endpoint { + type Err = Error; + + fn from_str(s: &str) -> std::result::Result { + // The wire form is exactly `" "` separated by a single + // space; paths never contain spaces, so require exactly two non-empty + // parts and a valid HTTP method. + let mut parts = s.split(' '); + match (parts.next(), parts.next(), parts.next()) { + (Some(method), Some(path), None) if !method.is_empty() && !path.is_empty() => { + let method = Method::from_str(&method.to_ascii_uppercase()).map_err(|_| { + Error::new( + ErrorKind::DataInvalid, + format!("invalid HTTP method in endpoint: {s:?}"), + ) + })?; + Ok(Self { + method, + path: path.to_string(), + }) + } + _ => Err(Error::new( + ErrorKind::DataInvalid, + format!( + r#"invalid endpoint {s:?}: expected " " separated by a single space"# + ), + )), + } + } +} + +impl Display for Endpoint { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + write!(f, "{} {}", self.method, self.path) + } +} + +impl Serialize for Endpoint { + fn serialize(&self, serializer: S) -> std::result::Result + where S: Serializer { + serializer.collect_str(self) + } +} + +impl<'de> Deserialize<'de> for Endpoint { + fn deserialize(deserializer: D) -> std::result::Result + where D: Deserializer<'de> { + struct EndpointVisitor; + + impl Visitor<'_> for EndpointVisitor { + type Value = Endpoint; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str(r#"an endpoint string of the form " ""#) + } + + fn visit_str(self, v: &str) -> std::result::Result + where E: DeError { + Endpoint::from_str(v).map_err(E::custom) + } + } + + deserializer.deserialize_str(EndpointVisitor) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parses_and_round_trips() { + let ep: Endpoint = "POST /v1/{prefix}/namespaces/{namespace}/tables" + .parse() + .unwrap(); + assert_eq!(ep.method(), "POST"); + assert_eq!(ep.path(), "/v1/{prefix}/namespaces/{namespace}/tables"); + + let json = serde_json::to_string(&ep).unwrap(); + assert_eq!(json, r#""POST /v1/{prefix}/namespaces/{namespace}/tables""#); + assert_eq!(serde_json::from_str::(&json).unwrap(), ep); + } + + #[test] + fn rejects_malformed_endpoints() { + for invalid in ["GET", "GET /v1", " GET /v1", "GET ", " /v1", ""] { + assert!( + invalid.parse::().is_err(), + "expected {invalid:?} to be rejected" + ); + } + } + + #[test] + fn normalizes_http_method_to_uppercase() { + assert_eq!("get /v1/x".parse::().unwrap().method(), "GET"); + } +} diff --git a/crates/catalog/rest/src/lib.rs b/crates/catalog/rest/src/lib.rs index 6bee950970..383728401f 100644 --- a/crates/catalog/rest/src/lib.rs +++ b/crates/catalog/rest/src/lib.rs @@ -53,7 +53,9 @@ mod catalog; mod client; +mod endpoint; mod types; pub use catalog::*; +pub use endpoint::Endpoint; pub use types::*; diff --git a/crates/catalog/rest/src/types.rs b/crates/catalog/rest/src/types.rs index 21749fe0a4..390521229e 100644 --- a/crates/catalog/rest/src/types.rs +++ b/crates/catalog/rest/src/types.rs @@ -25,10 +25,15 @@ use iceberg::{ }; use serde_derive::{Deserialize, Serialize}; +use crate::endpoint::Endpoint; + #[derive(Clone, Debug, Serialize, Deserialize)] pub(super) struct CatalogConfig { pub(super) overrides: HashMap, pub(super) defaults: HashMap, + /// Endpoints the server advertises support for; `None` when the field is + /// absent. + pub(super) endpoints: Option>, } #[derive(Debug, Serialize, Deserialize)] @@ -472,4 +477,32 @@ mod tests { assert_eq!(request.stage_create, None); assert!(request.properties.is_empty()); } + + #[test] + fn config_parses_advertised_endpoints() { + let json = r#"{"overrides":{},"defaults":{}, + "endpoints":["GET /v1/{prefix}/namespaces","POST /v1/{prefix}/namespaces/{namespace}/tables"]}"#; + let config: CatalogConfig = serde_json::from_str(json).unwrap(); + let endpoints = config.endpoints.expect("endpoints should be present"); + assert_eq!(endpoints.len(), 2); + assert!(endpoints.contains(&"GET /v1/{prefix}/namespaces".parse().unwrap())); + } + + #[test] + fn config_without_endpoints_field_deserializes_to_none() { + // `Option>` defaults to `None` for a missing field without + // an explicit `#[serde(default)]`. + let config: CatalogConfig = + serde_json::from_str(r#"{"overrides":{},"defaults":{}}"#).unwrap(); + assert!(config.endpoints.is_none()); + } + + #[test] + fn malformed_endpoint_fails_config_parse() { + // A single malformed endpoint string fails the whole config parse, + // matching the Java reference (`ConfigResponseParser` rejects it rather + // than silently dropping it). + let json = r#"{"overrides":{},"defaults":{},"endpoints":["GET_v1/namespaces"]}"#; + assert!(serde_json::from_str::(json).is_err()); + } } diff --git a/crates/catalog/s3tables/DEPENDENCIES.rust.tsv b/crates/catalog/s3tables/DEPENDENCIES.rust.tsv index a1276f6bcd..87ecbb891a 100644 --- a/crates/catalog/s3tables/DEPENDENCIES.rust.tsv +++ b/crates/catalog/s3tables/DEPENDENCIES.rust.tsv @@ -6,17 +6,18 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X +arc-swap@1.9.2 X X array-init@2.1.0 X X arrow-arith@58.3.0 X arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -26,52 +27,61 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X -aws-config@1.8.15 X +autocfg@1.5.1 X X +aws-config@1.8.18 X aws-credential-types@1.2.14 X -aws-lc-rs@1.16.2 X X -aws-lc-sys@0.39.0 X X X X X -aws-runtime@1.7.2 X -aws-sdk-s3tables@1.54.0 X -aws-sdk-sso@1.97.0 X -aws-sdk-ssooidc@1.99.0 X -aws-sdk-sts@1.101.0 X -aws-sigv4@1.4.2 X -aws-smithy-async@1.2.14 X +aws-lc-rs@1.17.1 X X +aws-lc-sys@0.42.0 X X X X X +aws-runtime@1.7.5 X +aws-sdk-s3tables@1.59.0 X +aws-sdk-sso@1.102.0 X +aws-sdk-ssooidc@1.104.0 X +aws-sdk-sts@1.107.0 X +aws-sigv4@1.4.5 X +aws-smithy-async@1.3.0 X aws-smithy-http@0.63.6 X -aws-smithy-http-client@1.1.12 X -aws-smithy-json@0.62.5 X +aws-smithy-http@0.64.0 X +aws-smithy-http-client@1.2.0 X +aws-smithy-json@0.62.7 X aws-smithy-observability@0.2.6 X +aws-smithy-observability@0.3.0 X aws-smithy-query@0.60.15 X -aws-smithy-runtime@1.10.3 X -aws-smithy-runtime-api@1.11.6 X -aws-smithy-types@1.4.7 X +aws-smithy-runtime@1.12.0 X +aws-smithy-runtime-api@1.13.0 X +aws-smithy-runtime-api-macros@1.1.0 X +aws-smithy-schema@0.1.0 X +aws-smithy-schema@0.2.0 X +aws-smithy-types@1.6.1 X aws-smithy-xml@0.60.15 X -aws-types@1.3.14 X +aws-types@1.3.16 X backon@1.6.0 X base64@0.22.1 X X base64-simd@0.8.0 X +base64ct@1.8.3 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X -block-buffer@0.12.0 X X +block-buffer@0.12.1 X X +block-padding@0.3.3 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X bytes-utils@0.1.4 X X -cc@1.2.57 X X +cbc@0.1.2 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X -cmake@0.1.57 X X +cmake@0.1.58 X X +cmov@0.5.4 X X combine@4.6.7 X concurrent-queue@2.5.0 X X const-oid@0.10.2 X X @@ -81,41 +91,44 @@ const-random-macro@0.1.16 X X core-foundation@0.10.1 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X +cpufeatures@0.3.0 X X crc32c@0.6.8 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X crypto-common@0.2.2 X X -ctor@1.0.7 X X +ctor@1.0.8 X X ctr@0.9.2 X X +ctutils@0.4.2 X X darling@0.20.11 X darling@0.23.0 X darling_core@0.20.11 X darling_core@0.23.0 X darling_macro@0.20.11 X darling_macro@0.23.0 X +der@0.7.10 X X deranged@0.5.8 X X derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X digest@0.11.3 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X dlv-list@0.5.2 X X dunce@1.0.5 X X X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -134,26 +147,26 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X -h2@0.4.13 X +h2@0.4.15 X half@2.7.1 X X hashbrown@0.14.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X hex@0.4.3 X X hmac@0.12.1 X X +hmac@0.13.0 X X http@0.2.12 X X -http@1.4.0 X X +http@1.4.2 X X http-body@0.4.6 X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -hybrid-array@0.4.12 X X -hyper@1.8.1 X -hyper-rustls@0.27.7 X X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X +hyper-rustls@0.27.9 X X X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X @@ -161,33 +174,32 @@ iceberg@0.10.0 X iceberg-catalog-s3tables@0.10.0 X iceberg-storage-opendal@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jiff@0.2.23 X X -jiff-tzdb@0.1.6 X X +jiff@0.2.31 X X +jiff-tzdb@0.1.7 X X jiff-tzdb-platform@0.1.3 X X jni@0.22.4 X X jni-macros@0.22.4 X X jni-sys@0.4.1 X X jni-sys-macros@0.4.1 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -195,27 +207,29 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -link-section@0.18.1 X X +link-section@0.19.0 X X linktime-proc-macro@0.2.0 X X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X +log@0.4.33 X X +lz4_flex@0.13.1 X md-5@0.11.0 X X -mea@0.6.3 X -memchr@2.8.0 X X +mea@0.6.4 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X +num-bigint-dig@0.8.6 X X num-complex@0.4.6 X X -num-conv@0.2.0 X X +num-conv@0.2.2 X X num-integer@0.1.46 X X +num-iter@0.1.46 X X num-traits@0.2.19 X X once_cell@1.21.4 X X opaque-debug@0.3.1 X X @@ -235,87 +249,104 @@ outref@0.5.2 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X +pbkdf2@0.12.2 X X +pem-rfc7468@0.7.0 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkcs1@0.7.5 X X +pkcs5@0.7.1 X X +pkcs8@0.10.2 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X powerfmt@0.2.0 X X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X quick-xml@0.39.4 X -quote@1.0.45 X X +quick-xml@0.40.1 X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.8.6 X X +rand@0.9.5 X X +rand_chacha@0.3.1 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X -reqsign-aws-v4@3.0.0 X -reqsign-core@3.0.0 X -reqsign-file-read-tokio@3.0.0 X +regex-syntax@0.8.11 X X +reqsign-aws-v4@3.0.1 X +reqsign-core@3.0.1 X +reqsign-file-read-tokio@3.0.1 X reqwest@0.12.28 X X -reqwest@0.13.3 X X +reqwest@0.13.4 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X +rsa@0.9.10 X X rust-ini@0.21.3 X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustls@0.23.37 X X X -rustls-native-certs@0.8.3 X X X -rustls-pki-types@1.14.0 X X +rustls@0.23.41 X X X +rustls-native-certs@0.8.4 X X X +rustls-pki-types@1.15.0 X X rustls-platform-verifier@0.7.0 X X rustls-platform-verifier-android@0.1.1 X X rustls-webpki@0.103.13 X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X +salsa20@0.10.2 X X same-file@1.0.6 X X schannel@0.1.29 X scopeguard@1.2.0 X X +scrypt@0.11.0 X X security-framework@3.7.0 X X security-framework-sys@2.17.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sha1@0.10.6 X X +sha1@0.11.0 X X sha2@0.10.9 X X +sha2@0.11.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X +shlex@2.0.1 X X signal-hook-registry@1.4.8 X X -simd-adler32@0.3.8 X +signature@2.2.0 X X +simd-adler32@0.3.9 X simd_cesu8@1.1.1 X X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X +spin@0.9.8 X +spki@0.7.3 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -323,16 +354,16 @@ thiserror@2.0.18 X X thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X -time@0.3.47 X X -time-core@0.1.8 X X +time@0.3.53 X X +time-core@0.1.9 X X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-rustls@0.26.4 X X tokio-util@0.7.18 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -346,31 +377,30 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X urlencoding@2.1.3 X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X vsimd@0.8.0 X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X wasm-streams@0.5.0 X X -web-sys@0.3.91 X X +web-sys@0.3.103 X X web-time@1.1.0 X X -webpki-root-certs@1.0.7 X +webpki-root-certs@1.0.8 X winapi-util@0.1.11 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X @@ -380,49 +410,39 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X xattr@1.6.1 X X xmlparser@0.13.6 X X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/catalog/s3tables/public-api.txt b/crates/catalog/s3tables/public-api.txt index b6b704e3dd..6d1b089e12 100644 --- a/crates/catalog/s3tables/public-api.txt +++ b/crates/catalog/s3tables/public-api.txt @@ -30,6 +30,7 @@ pub fn iceberg_catalog_s3tables::S3TablesCatalogBuilder::fmt(&self, f: &mut core impl iceberg::catalog::CatalogBuilder for iceberg_catalog_s3tables::S3TablesCatalogBuilder pub type iceberg_catalog_s3tables::S3TablesCatalogBuilder::C = iceberg_catalog_s3tables::S3TablesCatalog pub fn iceberg_catalog_s3tables::S3TablesCatalogBuilder::load(self, name: impl core::convert::Into, props: std::collections::hash::map::HashMap) -> impl core::future::future::Future> + core::marker::Send +pub fn iceberg_catalog_s3tables::S3TablesCatalogBuilder::with_kms_client_factory(self, kms_client_factory: alloc::sync::Arc) -> Self pub fn iceberg_catalog_s3tables::S3TablesCatalogBuilder::with_runtime(self, runtime: iceberg::runtime::Runtime) -> Self pub fn iceberg_catalog_s3tables::S3TablesCatalogBuilder::with_storage_factory(self, storage_factory: alloc::sync::Arc) -> Self pub const iceberg_catalog_s3tables::S3TABLES_CATALOG_PROP_ENDPOINT_URL: &str diff --git a/crates/catalog/s3tables/src/catalog.rs b/crates/catalog/s3tables/src/catalog.rs index e7f4174261..3bd75b4833 100644 --- a/crates/catalog/s3tables/src/catalog.rs +++ b/crates/catalog/s3tables/src/catalog.rs @@ -27,6 +27,7 @@ use aws_sdk_s3tables::operation::get_table::{GetTableError, GetTableOutput}; use aws_sdk_s3tables::operation::list_tables::ListTablesOutput; use aws_sdk_s3tables::operation::update_table_metadata_location::UpdateTableMetadataLocationError; use aws_sdk_s3tables::types::OpenTableFormat; +use iceberg::encryption::kms::{KeyManagementClient, KmsClientFactory}; use iceberg::io::{FileIO, FileIOBuilder, StorageFactory}; use iceberg::spec::{TableMetadata, TableMetadataBuilder}; use iceberg::table::Table; @@ -71,6 +72,7 @@ struct S3TablesCatalogConfig { pub struct S3TablesCatalogBuilder { config: S3TablesCatalogConfig, storage_factory: Option>, + kms_client_factory: Option>, runtime: Option, } @@ -86,6 +88,7 @@ impl Default for S3TablesCatalogBuilder { props: HashMap::new(), }, storage_factory: None, + kms_client_factory: None, runtime: None, } } @@ -134,6 +137,11 @@ impl CatalogBuilder for S3TablesCatalogBuilder { self } + fn with_kms_client_factory(mut self, kms_client_factory: Arc) -> Self { + self.kms_client_factory = Some(kms_client_factory); + self + } + fn with_runtime(mut self, runtime: Runtime) -> Self { self.runtime = Some(runtime); self @@ -183,7 +191,11 @@ impl CatalogBuilder for S3TablesCatalogBuilder { Some(rt) => rt, None => Runtime::try_current()?, }; - S3TablesCatalog::new(self.config, self.storage_factory, runtime).await + let kms_client = match self.kms_client_factory { + Some(factory) => Some(factory.create_kms_client(&self.config.props).await?), + None => None, + }; + S3TablesCatalog::new(self.config, self.storage_factory, runtime, kms_client).await } } } @@ -196,6 +208,7 @@ pub struct S3TablesCatalog { s3tables_client: aws_sdk_s3tables::Client, file_io: FileIO, runtime: Runtime, + kms_client: Option>, } impl S3TablesCatalog { @@ -204,6 +217,7 @@ impl S3TablesCatalog { config: S3TablesCatalogConfig, storage_factory: Option>, runtime: Runtime, + kms_client: Option>, ) -> Result { let s3tables_client = if let Some(client) = config.client.clone() { client @@ -227,6 +241,7 @@ impl S3TablesCatalog { s3tables_client, file_io, runtime, + kms_client, }) } @@ -270,13 +285,16 @@ impl S3TablesCatalog { })?; let metadata = TableMetadata::read_from(&self.file_io, metadata_location).await?; - let table = Table::builder() + let mut builder = Table::builder() .identifier(table_ident.clone()) .metadata(metadata) .metadata_location(metadata_location) .file_io(self.file_io.clone()) - .runtime(self.runtime.clone()) - .build()?; + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + let table = builder.build()?; Ok((table, resp.version_token)) } } @@ -569,13 +587,16 @@ impl Catalog for S3TablesCatalog { .await .map_err(from_aws_sdk_error)?; - let table = Table::builder() + let mut builder = Table::builder() .identifier(table_ident) .metadata_location(metadata_location_str) .metadata(metadata) .file_io(self.file_io.clone()) - .runtime(self.runtime.clone()) - .build()?; + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + let table = builder.build()?; Ok(table) } @@ -759,7 +780,7 @@ mod tests { }; Ok(Some( - S3TablesCatalog::new(config, None, Runtime::current()).await?, + S3TablesCatalog::new(config, None, Runtime::current(), None).await?, )) } diff --git a/crates/catalog/sql/DEPENDENCIES.rust.tsv b/crates/catalog/sql/DEPENDENCIES.rust.tsv index 7bd99de13d..76edf51a09 100644 --- a/crates/catalog/sql/DEPENDENCIES.rust.tsv +++ b/crates/catalog/sql/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X allocator-api2@0.2.21 X X android_system_properties@0.1.5 X X anyhow@1.0.103 X X @@ -17,7 +17,7 @@ arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -27,26 +27,26 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X +autocfg@1.5.1 X X backon@1.6.0 X base64@0.22.1 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X concurrent-queue@2.5.0 X X const-random@0.1.18 X X @@ -54,12 +54,12 @@ const-random-macro@0.1.16 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X crc@3.4.0 X X -crc-catalog@2.4.0 X X +crc-catalog@2.5.0 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-queue@0.3.12 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-queue@0.3.13 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X ctr@0.9.2 X X @@ -73,16 +73,16 @@ derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -103,46 +103,44 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X half@2.7.1 X X hashbrown@0.15.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X hashlink@0.10.0 X X heck@0.5.0 X X -http@1.4.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -hyper@1.8.1 X +hyper@1.10.1 X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X iceberg@0.10.0 X iceberg-catalog-sql@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -150,20 +148,20 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X libsqlite3-sys@0.30.1 X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X -memchr@2.8.0 X X +log@0.4.33 X X +lz4_flex@0.13.1 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X num-integer@0.1.46 X X num-traits@0.2.19 X X @@ -174,62 +172,62 @@ ordered-float@4.6.0 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -potential_utf@0.1.4 X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.9.5 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X -rustls@0.23.37 X X X -rustls-pki-types@1.14.0 X X +rustls@0.23.41 X X X +rustls-pki-types@1.15.0 X X rustls-webpki@0.103.13 X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X scopeguard@1.2.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sha2@0.10.9 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X -simd-adler32@0.3.8 X +shlex@2.0.1 X X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X spin@0.9.8 X sqlx@0.8.6 X X sqlx-core@0.8.6 X X @@ -239,7 +237,7 @@ strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -248,12 +246,12 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-stream@0.1.18 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -267,28 +265,27 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X vcpkg@0.2.15 X X version_check@0.9.5 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -web-sys@0.3.91 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +web-sys@0.3.103 X X webpki-roots@0.26.11 X -webpki-roots@1.0.6 X +webpki-roots@1.0.8 X windows-core@0.62.2 X X windows-implement@0.60.2 X X windows-interface@0.59.3 X X @@ -296,39 +293,29 @@ windows-link@0.2.1 X X windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/catalog/sql/public-api.txt b/crates/catalog/sql/public-api.txt index 9402ccde4e..7f3c638942 100644 --- a/crates/catalog/sql/public-api.txt +++ b/crates/catalog/sql/public-api.txt @@ -48,6 +48,7 @@ pub fn iceberg_catalog_sql::SqlCatalogBuilder::fmt(&self, f: &mut core::fmt::For impl iceberg::catalog::CatalogBuilder for iceberg_catalog_sql::SqlCatalogBuilder pub type iceberg_catalog_sql::SqlCatalogBuilder::C = iceberg_catalog_sql::SqlCatalog pub fn iceberg_catalog_sql::SqlCatalogBuilder::load(self, name: impl core::convert::Into, props: std::collections::hash::map::HashMap) -> impl core::future::future::Future> + core::marker::Send +pub fn iceberg_catalog_sql::SqlCatalogBuilder::with_kms_client_factory(self, kms_client_factory: alloc::sync::Arc) -> Self pub fn iceberg_catalog_sql::SqlCatalogBuilder::with_runtime(self, runtime: iceberg::runtime::Runtime) -> Self pub fn iceberg_catalog_sql::SqlCatalogBuilder::with_storage_factory(self, storage_factory: alloc::sync::Arc) -> Self pub const iceberg_catalog_sql::SQL_CATALOG_PROP_BIND_STYLE: &str diff --git a/crates/catalog/sql/src/catalog.rs b/crates/catalog/sql/src/catalog.rs index 02e32c5f4a..605d2b6219 100644 --- a/crates/catalog/sql/src/catalog.rs +++ b/crates/catalog/sql/src/catalog.rs @@ -21,6 +21,7 @@ use std::sync::Arc; use std::time::Duration; use async_trait::async_trait; +use iceberg::encryption::kms::{KeyManagementClient, KmsClientFactory}; use iceberg::io::{FileIO, FileIOBuilder, StorageFactory}; use iceberg::spec::{TableMetadata, TableMetadataBuilder}; use iceberg::table::Table; @@ -67,6 +68,7 @@ static TEST_BEFORE_ACQUIRE: bool = true; // Default the health-check of each con pub struct SqlCatalogBuilder { config: SqlCatalogConfig, storage_factory: Option>, + kms_client_factory: Option>, runtime: Option, } @@ -81,6 +83,7 @@ impl Default for SqlCatalogBuilder { props: HashMap::new(), }, storage_factory: None, + kms_client_factory: None, runtime: None, } } @@ -145,6 +148,11 @@ impl CatalogBuilder for SqlCatalogBuilder { self } + fn with_kms_client_factory(mut self, kms_client_factory: Arc) -> Self { + self.kms_client_factory = Some(kms_client_factory); + self + } + fn with_runtime(mut self, runtime: Runtime) -> Self { self.runtime = Some(runtime); self @@ -201,7 +209,11 @@ impl CatalogBuilder for SqlCatalogBuilder { Some(rt) => rt, None => Runtime::try_current()?, }; - SqlCatalog::new(self.config, self.storage_factory, runtime).await + let kms_client = match self.kms_client_factory { + Some(factory) => Some(factory.create_kms_client(&self.config.props).await?), + None => None, + }; + SqlCatalog::new(self.config, self.storage_factory, runtime, kms_client).await } } } @@ -233,6 +245,7 @@ pub struct SqlCatalog { fileio: FileIO, sql_bind_style: SqlBindStyle, runtime: Runtime, + kms_client: Option>, } #[derive(Debug, PartialEq, strum::EnumString, strum::Display)] @@ -250,6 +263,7 @@ impl SqlCatalog { config: SqlCatalogConfig, storage_factory: Option>, runtime: Runtime, + kms_client: Option>, ) -> Result { let factory = storage_factory.ok_or_else(|| { Error::new( @@ -321,6 +335,7 @@ impl SqlCatalog { fileio, sql_bind_style: config.sql_bind_style, runtime, + kms_client, }) } @@ -818,13 +833,16 @@ impl Catalog for SqlCatalog { let metadata = TableMetadata::read_from(&self.fileio, &tbl_metadata_location).await?; - Ok(Table::builder() + let mut builder = Table::builder() .file_io(self.fileio.clone()) .identifier(identifier.clone()) .metadata_location(tbl_metadata_location) .metadata(metadata) - .runtime(self.runtime.clone()) - .build()?) + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + Ok(builder.build()?) } async fn create_table( @@ -889,13 +907,16 @@ impl Catalog for SqlCatalog { VALUES (?, ?, ?, ?, ?) "), vec![Some(&self.name), Some(&namespace.join(".")), Some(&tbl_name.clone()), Some(&tbl_metadata_location_str), Some(CATALOG_FIELD_TABLE_RECORD_TYPE)], None).await?; - Ok(Table::builder() + let mut builder = Table::builder() .file_io(self.fileio.clone()) .metadata_location(tbl_metadata_location_str) .identifier(tbl_ident) .metadata(tbl_metadata) - .runtime(self.runtime.clone()) - .build()?) + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + Ok(builder.build()?) } async fn rename_table(&self, src: &TableIdent, dest: &TableIdent) -> Result<()> { @@ -961,13 +982,16 @@ impl Catalog for SqlCatalog { VALUES (?, ?, ?, ?, ?) "), vec![Some(&self.name), Some(&namespace.join(".")), Some(&tbl_name), Some(&metadata_location), Some(CATALOG_FIELD_TABLE_RECORD_TYPE)], None).await?; - Ok(Table::builder() + let mut builder = Table::builder() .identifier(table_ident.clone()) .metadata_location(metadata_location) .metadata(metadata) .file_io(self.fileio.clone()) - .runtime(self.runtime.clone()) - .build()?) + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + Ok(builder.build()?) } /// Updates an existing table within the SQL catalog. diff --git a/crates/examples/DEPENDENCIES.rust.tsv b/crates/examples/DEPENDENCIES.rust.tsv index 413ebda236..91100b4d2c 100644 --- a/crates/examples/DEPENDENCIES.rust.tsv +++ b/crates/examples/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X @@ -16,7 +16,7 @@ arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -26,26 +26,26 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X +autocfg@1.5.1 X X backon@1.6.0 X base64@0.22.1 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X concurrent-queue@2.5.0 X X const-random@0.1.18 X X @@ -53,9 +53,9 @@ const-random-macro@0.1.16 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X ctr@0.9.2 X X @@ -69,17 +69,17 @@ derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -97,20 +97,19 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X -h2@0.4.13 X +h2@0.4.15 X half@2.7.1 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X -http@1.4.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X httpdate@1.0.3 X X -hyper@1.8.1 X +hyper@1.10.1 X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X @@ -118,26 +117,25 @@ iceberg@0.10.0 X iceberg-catalog-rest@0.10.0 X iceberg-examples@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -145,19 +143,19 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X -memchr@2.8.0 X X +log@0.4.33 X X +lz4_flex@0.13.1 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X num-integer@0.1.46 X X num-traits@0.2.19 X X @@ -168,65 +166,65 @@ ordered-float@4.6.0 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -potential_utf@0.1.4 X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.9.5 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X scopeguard@1.2.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X +shlex@2.0.1 X X signal-hook-registry@1.4.8 X X -simd-adler32@0.3.8 X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -235,12 +233,12 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-util@0.7.18 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -254,25 +252,24 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -web-sys@0.3.91 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +web-sys@0.3.103 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X windows-interface@0.59.3 X X @@ -280,39 +277,29 @@ windows-link@0.2.1 X X windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/iceberg/DEPENDENCIES.rust.tsv b/crates/iceberg/DEPENDENCIES.rust.tsv index 1381017ddc..576da105a9 100644 --- a/crates/iceberg/DEPENDENCIES.rust.tsv +++ b/crates/iceberg/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X @@ -16,7 +16,7 @@ arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -26,26 +26,26 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X +autocfg@1.5.1 X X backon@1.6.0 X base64@0.22.1 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X concurrent-queue@2.5.0 X X const-random@0.1.18 X X @@ -53,9 +53,9 @@ const-random-macro@0.1.16 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X ctr@0.9.2 X X @@ -69,16 +69,16 @@ derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -96,42 +96,40 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X half@2.7.1 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X -http@1.4.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -hyper@1.8.1 X +hyper@1.10.1 X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X iceberg@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X +idna_adapter@1.2.2 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -139,19 +137,19 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X -memchr@2.8.0 X X +log@0.4.33 X X +lz4_flex@0.13.1 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X num-integer@0.1.46 X X num-traits@0.2.19 X X @@ -162,64 +160,64 @@ ordered-float@4.6.0 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -potential_utf@0.1.4 X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.9.5 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X scopeguard@1.2.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X -simd-adler32@0.3.8 X +shlex@2.0.1 X X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -228,11 +226,11 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -246,25 +244,24 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -web-sys@0.3.91 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +web-sys@0.3.103 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X windows-interface@0.59.3 X X @@ -272,39 +269,29 @@ windows-link@0.2.1 X X windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/iceberg/public-api.txt b/crates/iceberg/public-api.txt index 41d4d7691b..c2013294e3 100644 --- a/crates/iceberg/public-api.txt +++ b/crates/iceberg/public-api.txt @@ -195,6 +195,20 @@ pub fn iceberg::encryption::kms::MemoryKeyManagementClient::generate_key<'life0, pub fn iceberg::encryption::kms::MemoryKeyManagementClient::supports_key_generation(&self) -> bool pub fn iceberg::encryption::kms::MemoryKeyManagementClient::unwrap_key<'life0, 'life1, 'life2, 'async_trait>(&'life0 self, wrapped_key: &'life1 [u8], wrapping_key_id: &'life2 str) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait pub fn iceberg::encryption::kms::MemoryKeyManagementClient::wrap_key<'life0, 'life1, 'life2, 'async_trait>(&'life0 self, key: &'life1 [u8], wrapping_key_id: &'life2 str) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait +pub struct iceberg::encryption::kms::MemoryKmsClientFactory +impl iceberg::encryption::kms::MemoryKmsClientFactory +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::add_master_key(&self, key_id: impl core::convert::Into) -> iceberg::Result<()> +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::add_master_key_bytes(&self, key_id: impl core::convert::Into, key_bytes: iceberg::encryption::SensitiveBytes) -> iceberg::Result<()> +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::new() -> Self +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::with_master_key_size(master_key_size: iceberg::encryption::AesKeySize) -> Self +impl core::clone::Clone for iceberg::encryption::kms::MemoryKmsClientFactory +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::clone(&self) -> iceberg::encryption::kms::MemoryKmsClientFactory +impl core::default::Default for iceberg::encryption::kms::MemoryKmsClientFactory +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::default() -> iceberg::encryption::kms::MemoryKmsClientFactory +impl core::fmt::Debug for iceberg::encryption::kms::MemoryKmsClientFactory +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl iceberg::encryption::kms::KmsClientFactory for iceberg::encryption::kms::MemoryKmsClientFactory +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::create_kms_client<'life0, 'life1, 'async_trait>(&'life0 self, _properties: &'life1 std::collections::hash::map::HashMap) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub trait iceberg::encryption::kms::KeyManagementClient: core::marker::Send + core::marker::Sync + core::fmt::Debug pub fn iceberg::encryption::kms::KeyManagementClient::generate_key<'life0, 'life1, 'async_trait>(&'life0 self, wrapping_key_id: &'life1 str) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub fn iceberg::encryption::kms::KeyManagementClient::supports_key_generation(&self) -> bool @@ -210,6 +224,10 @@ pub fn T::generate_key<'life0, 'life1, 'async_trait>(&'life0 self, wrapping_key_ pub fn T::supports_key_generation(&self) -> bool pub fn T::unwrap_key<'life0, 'life1, 'life2, 'async_trait>(&'life0 self, wrapped_key: &'life1 [u8], wrapping_key_id: &'life2 str) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait pub fn T::wrap_key<'life0, 'life1, 'life2, 'async_trait>(&'life0 self, key: &'life1 [u8], wrapping_key_id: &'life2 str) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait +pub trait iceberg::encryption::kms::KmsClientFactory: core::fmt::Debug + core::marker::Send + core::marker::Sync +pub fn iceberg::encryption::kms::KmsClientFactory::create_kms_client<'life0, 'life1, 'async_trait>(&'life0 self, properties: &'life1 std::collections::hash::map::HashMap) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait +impl iceberg::encryption::kms::KmsClientFactory for iceberg::encryption::kms::MemoryKmsClientFactory +pub fn iceberg::encryption::kms::MemoryKmsClientFactory::create_kms_client<'life0, 'life1, 'async_trait>(&'life0 self, _properties: &'life1 std::collections::hash::map::HashMap) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub enum iceberg::encryption::AesKeySize pub iceberg::encryption::AesKeySize::Bits128 = 128 pub iceberg::encryption::AesKeySize::Bits192 = 192 @@ -1075,6 +1093,7 @@ pub fn iceberg::memory::MemoryCatalogBuilder::fmt(&self, f: &mut core::fmt::Form impl iceberg::CatalogBuilder for iceberg::memory::MemoryCatalogBuilder pub type iceberg::memory::MemoryCatalogBuilder::C = iceberg::memory::MemoryCatalog pub fn iceberg::memory::MemoryCatalogBuilder::load(self, name: impl core::convert::Into, props: std::collections::hash::map::HashMap) -> impl core::future::future::Future> + core::marker::Send +pub fn iceberg::memory::MemoryCatalogBuilder::with_kms_client_factory(self, kms_client_factory: alloc::sync::Arc) -> Self pub fn iceberg::memory::MemoryCatalogBuilder::with_runtime(self, runtime: iceberg::Runtime) -> Self pub fn iceberg::memory::MemoryCatalogBuilder::with_storage_factory(self, storage_factory: alloc::sync::Arc) -> Self pub const iceberg::memory::MEMORY_CATALOG_WAREHOUSE: &str @@ -3685,11 +3704,13 @@ pub fn iceberg::memory::MemoryCatalog::update_table<'life0, 'async_trait>(&'life pub trait iceberg::CatalogBuilder: core::default::Default + core::fmt::Debug + core::marker::Send + core::marker::Sync pub type iceberg::CatalogBuilder::C: iceberg::Catalog pub fn iceberg::CatalogBuilder::load(self, name: impl core::convert::Into, props: std::collections::hash::map::HashMap) -> impl core::future::future::Future> + core::marker::Send +pub fn iceberg::CatalogBuilder::with_kms_client_factory(self, kms_client_factory: alloc::sync::Arc) -> Self pub fn iceberg::CatalogBuilder::with_runtime(self, runtime: iceberg::Runtime) -> Self pub fn iceberg::CatalogBuilder::with_storage_factory(self, storage_factory: alloc::sync::Arc) -> Self impl iceberg::CatalogBuilder for iceberg::memory::MemoryCatalogBuilder pub type iceberg::memory::MemoryCatalogBuilder::C = iceberg::memory::MemoryCatalog pub fn iceberg::memory::MemoryCatalogBuilder::load(self, name: impl core::convert::Into, props: std::collections::hash::map::HashMap) -> impl core::future::future::Future> + core::marker::Send +pub fn iceberg::memory::MemoryCatalogBuilder::with_kms_client_factory(self, kms_client_factory: alloc::sync::Arc) -> Self pub fn iceberg::memory::MemoryCatalogBuilder::with_runtime(self, runtime: iceberg::Runtime) -> Self pub fn iceberg::memory::MemoryCatalogBuilder::with_storage_factory(self, storage_factory: alloc::sync::Arc) -> Self pub async fn iceberg::drop_table_data(table_info: &iceberg::table::Table) -> iceberg::Result<()> diff --git a/crates/iceberg/src/arrow/caching_delete_file_loader.rs b/crates/iceberg/src/arrow/caching_delete_file_loader.rs index f8e909a147..de31d678a5 100644 --- a/crates/iceberg/src/arrow/caching_delete_file_loader.rs +++ b/crates/iceberg/src/arrow/caching_delete_file_loader.rs @@ -16,7 +16,6 @@ // under the License. use std::collections::{HashMap, HashSet}; -use std::ops::Not; use std::sync::Arc; use arrow_array::{Array, ArrayRef, Int64Array, StringArray, StructArray}; @@ -411,21 +410,28 @@ impl CachingDeleteFileLoader { continue; } - // Process the collected columns in lockstep + // Iceberg spec (Equality Delete Files): a null data value never equals a non-null + // delete value, so a row with a null equality column must be kept. Build the keep + // predicate as `col IS NULL OR col != v` (`col IS NOT NULL` for a null delete value); + // a bare `col != v` drops nulls. #[allow(clippy::len_zero)] while datum_columns_with_names[0].0.len() > 0 { - let mut row_predicate = AlwaysTrue; + let mut row_keep_predicate = Predicate::AlwaysFalse; for &mut (ref mut column, ref field_name) in &mut datum_columns_with_names { if let Some(item) = column.next() { - let cell_predicate = if let Some(datum) = item? { - Reference::new(field_name.clone()).equal_to(datum.clone()) + let reference = Reference::new(field_name.clone()); + let cell_keep_predicate = if let Some(datum) = item? { + reference + .clone() + .is_null() + .or(reference.not_equal_to(datum.clone())) } else { - Reference::new(field_name.clone()).is_null() + reference.is_not_null() }; - row_predicate = row_predicate.and(cell_predicate) + row_keep_predicate = row_keep_predicate.or(cell_keep_predicate); } } - row_predicates.push(row_predicate.not().rewrite_not()); + row_predicates.push(row_keep_predicate); } } @@ -653,13 +659,128 @@ mod tests { ) .await .expect("error parsing batch stream"); - println!("{parsed_eq_delete}"); - let expected = "(((((y != 1) OR (z != 100)) OR (a != \"HELP\")) OR (sa != 4)) OR (b != 62696E6172795F64617461)) AND (((((y != 2) OR (z IS NOT NULL)) OR (a IS NOT NULL)) OR (sa != 5)) OR (b IS NOT NULL))".to_string(); + let expected = "((((((y IS NULL) OR (y != 1)) OR ((z IS NULL) OR (z != 100))) OR ((a IS NULL) OR (a != \"HELP\"))) OR ((sa IS NULL) OR (sa != 4))) OR ((b IS NULL) OR (b != 62696E6172795F64617461))) AND ((((((y IS NULL) OR (y != 2)) OR (z IS NOT NULL)) OR (a IS NOT NULL)) OR ((sa IS NULL) OR (sa != 5))) OR (b IS NOT NULL))".to_string(); assert_eq!(parsed_eq_delete.to_string(), expected); } + // An equality delete keyed on a nullable column must not delete rows whose value in that + // column is null: per the Iceberg spec (Equality Delete Files), a null matches only a null + // delete value. Mirrors Iceberg-Java's + // TestSparkReaderDeletes.testEqualityDeleteWithSchemaEvolution. + #[tokio::test] + async fn test_equality_delete_predicate_preserves_null_rows() { + let schema = Arc::new(arrow_schema::Schema::new(vec![simple_field( + "status", + DataType::Utf8, + true, + "3", + )])); + let batch = + RecordBatch::try_new(schema, vec![ + Arc::new(StringArray::from(vec![Some("INACTIVE")])) as ArrayRef, + ]) + .unwrap(); + let stream: ArrowRecordBatchStream = futures::stream::iter(vec![Ok(batch)]).boxed(); + + let predicate = CachingDeleteFileLoader::parse_equality_deletes_record_batch_stream( + stream, + HashSet::from_iter(vec![3]), + ) + .await + .expect("error parsing equality delete stream"); + + assert_eq!( + predicate.to_string(), + "(status IS NULL) OR (status != \"INACTIVE\")" + ); + } + + // A delete row with a null value in the column matches only rows whose value is null (Iceberg + // spec, Equality Delete Files), so the keep predicate is `col IS NOT NULL`. + #[tokio::test] + async fn test_equality_delete_predicate_matches_null_delete_value() { + let schema = Arc::new(arrow_schema::Schema::new(vec![simple_field( + "status", + DataType::Utf8, + true, + "3", + )])); + let batch = RecordBatch::try_new(schema, vec![Arc::new(StringArray::from(vec![ + None as Option<&str>, + ])) as ArrayRef]) + .unwrap(); + let stream: ArrowRecordBatchStream = futures::stream::iter(vec![Ok(batch)]).boxed(); + + let predicate = CachingDeleteFileLoader::parse_equality_deletes_record_batch_stream( + stream, + HashSet::from_iter(vec![3]), + ) + .await + .expect("error parsing equality delete stream"); + + assert_eq!(predicate.to_string(), "status IS NOT NULL"); + } + + // A delete row with several equality columns keeps a data row that differs in any one of them, + // so the per-column keep predicates are OR-ed. + #[tokio::test] + async fn test_equality_delete_predicate_multiple_columns() { + let schema = Arc::new(arrow_schema::Schema::new(vec![ + simple_field("id", DataType::Int64, true, "1"), + simple_field("status", DataType::Utf8, true, "3"), + ])); + let batch = RecordBatch::try_new(schema, vec![ + Arc::new(Int64Array::from(vec![1])) as ArrayRef, + Arc::new(StringArray::from(vec![Some("X")])) as ArrayRef, + ]) + .unwrap(); + let stream: ArrowRecordBatchStream = futures::stream::iter(vec![Ok(batch)]).boxed(); + + let predicate = CachingDeleteFileLoader::parse_equality_deletes_record_batch_stream( + stream, + HashSet::from_iter(vec![1, 3]), + ) + .await + .expect("error parsing equality delete stream"); + + assert_eq!( + predicate.to_string(), + "((id IS NULL) OR (id != 1)) OR ((status IS NULL) OR (status != \"X\"))" + ); + } + + // A data row is kept only if it matches none of the delete rows, so the per-row keep + // predicates are AND-ed. + #[tokio::test] + async fn test_equality_delete_predicate_multiple_delete_rows() { + let schema = Arc::new(arrow_schema::Schema::new(vec![simple_field( + "status", + DataType::Utf8, + true, + "3", + )])); + let batch = RecordBatch::try_new(schema, vec![Arc::new(StringArray::from(vec![ + Some("A"), + Some("B"), + ])) as ArrayRef]) + .unwrap(); + let stream: ArrowRecordBatchStream = futures::stream::iter(vec![Ok(batch)]).boxed(); + + let predicate = CachingDeleteFileLoader::parse_equality_deletes_record_batch_stream( + stream, + HashSet::from_iter(vec![3]), + ) + .await + .expect("error parsing equality delete stream"); + + assert_eq!( + predicate.to_string(), + "((status IS NULL) OR (status != \"A\")) AND ((status IS NULL) OR (status != \"B\"))" + ); + } + /// Create a simple field with metadata. fn simple_field(name: &str, ty: DataType, nullable: bool, value: &str) -> Field { arrow_schema::Field::new(name, ty, nullable).with_metadata(HashMap::from([( diff --git a/crates/iceberg/src/arrow/record_batch_transformer.rs b/crates/iceberg/src/arrow/record_batch_transformer.rs index 439358435c..c780221d4a 100644 --- a/crates/iceberg/src/arrow/record_batch_transformer.rs +++ b/crates/iceberg/src/arrow/record_batch_transformer.rs @@ -549,6 +549,20 @@ impl RecordBatchTransformer { // Rule #2 (name mapping) was already applied in reader.rs if needed. // If field_id is still not found, the column doesn't exist in the Parquet file. // Fall through to rule #3 (initial_default) or rule #4 (null). + // + // Per the spec's "Default values", null is only a valid default for an + // optional field. A required field that is absent with no initial-default + // therefore has no valid value and must error, rather than producing a null + // column that violates the field's required constraint. This matches + // Iceberg-Java's Parquet readers (BaseParquetReaders / SparkParquetReaders), + // which raise "Missing required field: ". + if iceberg_field.initial_default.is_none() && iceberg_field.required { + return Err(Error::new( + ErrorKind::DataInvalid, + format!("Missing required field: {}", iceberg_field.name), + )); + } + let default_value = iceberg_field.initial_default.as_ref().and_then(|lit| { if let Literal::Primitive(prim) = lit { Some(prim.clone()) @@ -844,6 +858,47 @@ mod test { assert!(date_column.is_null(2)); } + #[test] + fn schema_evolution_required_field_absent_without_default_errors() { + // Per the spec's "Default values", null is only a valid default for an optional field, so + // a required field that is absent from the data file with no initial-default has no valid + // value and must error. Matches Iceberg-Java's Parquet readers, which raise + // "Missing required field: ". + let snapshot_schema = Arc::new( + Schema::builder() + .with_schema_id(1) + .with_fields(vec![ + NestedField::required(1, "id", Type::Primitive(PrimitiveType::Int)).into(), + NestedField::required(2, "missing_str", Type::Primitive(PrimitiveType::String)) + .into(), + ]) + .build() + .unwrap(), + ); + let projected_iceberg_field_ids = [1, 2]; + + let mut transformer = + RecordBatchTransformerBuilder::new(snapshot_schema, &projected_iceberg_field_ids) + .build(); + + let file_schema = Arc::new(ArrowSchema::new(vec![simple_field( + "id", + DataType::Int32, + false, + "1", + )])); + let file_batch = + RecordBatch::try_new(file_schema, vec![Arc::new(Int32Array::from(vec![1, 2, 3]))]) + .unwrap(); + + let err = transformer.process_record_batch(file_batch).unwrap_err(); + assert!( + err.to_string() + .contains("Missing required field: missing_str"), + "unexpected error: {err}" + ); + } + #[test] fn schema_evolution_adds_struct_column_with_nulls() { // Test that when a struct column is added after data files are written, diff --git a/crates/iceberg/src/catalog/memory/catalog.rs b/crates/iceberg/src/catalog/memory/catalog.rs index 67f8ab8dd1..e004ae9dfd 100644 --- a/crates/iceberg/src/catalog/memory/catalog.rs +++ b/crates/iceberg/src/catalog/memory/catalog.rs @@ -26,6 +26,7 @@ use futures::lock::{Mutex, MutexGuard}; use itertools::Itertools; use super::namespace_state::NamespaceState; +use crate::encryption::kms::{KeyManagementClient, KmsClientFactory}; use crate::io::{FileIO, FileIOBuilder, MemoryStorageFactory, StorageFactory}; use crate::runtime::Runtime; use crate::spec::{TableMetadata, TableMetadataBuilder}; @@ -46,6 +47,7 @@ const LOCATION: &str = "location"; pub struct MemoryCatalogBuilder { config: MemoryCatalogConfig, storage_factory: Option>, + kms_client_factory: Option>, runtime: Option, } @@ -58,6 +60,7 @@ impl Default for MemoryCatalogBuilder { props: HashMap::new(), }, storage_factory: None, + kms_client_factory: None, runtime: None, } } @@ -71,6 +74,11 @@ impl CatalogBuilder for MemoryCatalogBuilder { self } + fn with_kms_client_factory(mut self, kms_client_factory: Arc) -> Self { + self.kms_client_factory = Some(kms_client_factory); + self + } + fn with_runtime(mut self, runtime: Runtime) -> Self { self.runtime = Some(runtime); self @@ -96,7 +104,7 @@ impl CatalogBuilder for MemoryCatalogBuilder { .filter(|(k, _)| k != MEMORY_CATALOG_WAREHOUSE) .collect(); - let result = { + async move { if self.config.name.is_none() { Err(Error::new( ErrorKind::DataInvalid, @@ -109,11 +117,13 @@ impl CatalogBuilder for MemoryCatalogBuilder { )) } else { let runtime = self.runtime.unwrap_or_else(Runtime::current); - MemoryCatalog::new(self.config, self.storage_factory, runtime) + let kms_client = match self.kms_client_factory { + Some(factory) => Some(factory.create_kms_client(&self.config.props).await?), + None => None, + }; + MemoryCatalog::new(self.config, self.storage_factory, runtime, kms_client) } - }; - - std::future::ready(result) + } } } @@ -131,6 +141,7 @@ pub struct MemoryCatalog { file_io: FileIO, warehouse_location: String, runtime: Runtime, + kms_client: Option>, } impl MemoryCatalog { @@ -139,6 +150,7 @@ impl MemoryCatalog { config: MemoryCatalogConfig, storage_factory: Option>, runtime: Runtime, + kms_client: Option>, ) -> Result { // Use provided factory or default to MemoryStorageFactory let factory = storage_factory.unwrap_or_else(|| Arc::new(MemoryStorageFactory)); @@ -148,6 +160,7 @@ impl MemoryCatalog { file_io: FileIOBuilder::new(factory).with_props(config.props).build(), warehouse_location: config.warehouse, runtime, + kms_client, }) } @@ -160,13 +173,16 @@ impl MemoryCatalog { let metadata_location = root_namespace_state.get_existing_table_location(table_ident)?; let metadata = TableMetadata::read_from(&self.file_io, metadata_location).await?; - Table::builder() + let mut builder = Table::builder() .identifier(table_ident.clone()) .metadata(metadata) .metadata_location(metadata_location.to_string()) .file_io(self.file_io.clone()) - .runtime(self.runtime.clone()) - .build() + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + builder.build() } } @@ -315,13 +331,16 @@ impl Catalog for MemoryCatalog { root_namespace_state.insert_new_table(&table_ident, metadata_location.to_string())?; - Table::builder() + let mut builder = Table::builder() .file_io(self.file_io.clone()) .metadata_location(metadata_location.to_string()) .metadata(metadata) .identifier(table_ident) - .runtime(self.runtime.clone()) - .build() + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + builder.build() } /// Load table from the catalog. @@ -382,13 +401,16 @@ impl Catalog for MemoryCatalog { let metadata = TableMetadata::read_from(&self.file_io, &metadata_location).await?; - Table::builder() + let mut builder = Table::builder() .file_io(self.file_io.clone()) .metadata_location(metadata_location) .metadata(metadata) .identifier(table_ident.clone()) - .runtime(self.runtime.clone()) - .build() + .runtime(self.runtime.clone()); + if let Some(kms_client) = self.kms_client.clone() { + builder = builder.kms_client(kms_client); + } + builder.build() } /// Update a table in the catalog. @@ -428,7 +450,8 @@ pub(crate) mod tests { use tempfile::TempDir; use super::*; - use crate::io::FileIO; + use crate::encryption::kms::MemoryKmsClientFactory; + use crate::io::{FileIO, LocalFsStorageFactory}; use crate::spec::{NestedField, PartitionSpec, PrimitiveType, Schema, SortOrder, Type}; use crate::test_utils::test_runtime; use crate::transaction::{ApplyTransactionAction, Transaction}; @@ -1934,6 +1957,91 @@ pub(crate) mod tests { assert_eq!(err.kind(), ErrorKind::TableNotFound); } + /// Master key bytes used to generate the encrypted testdata fixtures. + /// See `testdata/manifests_lists/README.md`. + const FIXTURE_MASTER_KEY_ID: &str = "master-1"; + const FIXTURE_MASTER_KEY_BYTES: [u8; 16] = [ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, + ]; + + /// Builds a `MemoryKmsClientFactory` seeded with the fixture master key. + fn fixture_kms_factory() -> MemoryKmsClientFactory { + use crate::encryption::SensitiveBytes; + + let factory = MemoryKmsClientFactory::new(); + factory + .add_master_key_bytes( + FIXTURE_MASTER_KEY_ID, + SensitiveBytes::new(FIXTURE_MASTER_KEY_BYTES), + ) + .unwrap(); + factory + } + + /// Loads the encrypted V3 metadata fixture and patches its snapshot's + /// manifest-list to point at the on-disk encrypted testdata file. + fn load_encrypted_fixture_metadata() -> TableMetadata { + let manifest_dir = env!("CARGO_MANIFEST_DIR"); + let metadata_json = std::fs::read_to_string(format!( + "{manifest_dir}/testdata/table_metadata/TableMetadataV3ValidEncryption.json" + )) + .unwrap(); + let mut metadata: TableMetadata = serde_json::from_str(&metadata_json).unwrap(); + + let manifest_list_path = + format!("{manifest_dir}/testdata/manifests_lists/manifest-list-v3-encrypted.avro"); + let snapshot = metadata.snapshots.get_mut(&1).unwrap(); + let mut patched = snapshot.as_ref().clone(); + patched.manifest_list = manifest_list_path; + *snapshot = Arc::new(patched); + + metadata + } + + #[tokio::test] + async fn catalog_kms_factory_client_reaches_table_encryption_manager() { + let warehouse = temp_path(); + let catalog = MemoryCatalogBuilder::default() + .with_storage_factory(Arc::new(LocalFsStorageFactory)) + .with_kms_client_factory(Arc::new(fixture_kms_factory())) + .load( + "memory", + HashMap::from([(MEMORY_CATALOG_WAREHOUSE.to_string(), warehouse)]), + ) + .await + .unwrap(); + + let namespace_ident = NamespaceIdent::new("enc_ns".into()); + create_namespace(&catalog, &namespace_ident).await; + + let metadata = load_encrypted_fixture_metadata(); + let metadata_dir = TempDir::new().unwrap(); + let metadata_location = + format!("{}/v1.metadata.json", metadata_dir.path().to_str().unwrap()); + std::fs::write(&metadata_location, serde_json::to_vec(&metadata).unwrap()).unwrap(); + + let table_ident = TableIdent::new(namespace_ident, "enc".to_string()); + catalog + .register_table(&table_ident, metadata_location) + .await + .unwrap(); + + let table = catalog.load_table(&table_ident).await.unwrap(); + assert!( + table.encryption_manager().is_some(), + "factory-built KMS client should have reached the table's EncryptionManager" + ); + + let snapshot_ref = table.metadata().current_snapshot().unwrap(); + let manifest_list = table + .object_cache() + .get_manifest_list(snapshot_ref, &table.metadata_ref()) + .await + .unwrap(); + assert_eq!(manifest_list.entries().len(), 0); + } + fn build_table(ident: TableIdent) -> Table { let file_io = FileIO::new_with_fs(); diff --git a/crates/iceberg/src/catalog/mod.rs b/crates/iceberg/src/catalog/mod.rs index 3ab0f2886b..d2dc1ac1a0 100644 --- a/crates/iceberg/src/catalog/mod.rs +++ b/crates/iceberg/src/catalog/mod.rs @@ -39,6 +39,7 @@ use serde_derive::{Deserialize, Serialize}; use typed_builder::TypedBuilder; use uuid::Uuid; +use crate::encryption::kms::KmsClientFactory; use crate::io::StorageFactory; use crate::runtime::Runtime; use crate::spec::{ @@ -152,6 +153,28 @@ pub trait CatalogBuilder: Default + Debug + Send + Sync { /// ``` fn with_storage_factory(self, storage_factory: Arc) -> Self; + /// Set a [`KmsClientFactory`] to enable table encryption. + /// + /// When provided, the catalog calls the factory once during + /// [`load`](Self::load) with the catalog properties to create a shared + /// [`KeyManagementClient`](crate::encryption::KeyManagementClient). + /// That client is then passed to each table's `TableBuilder` so tables + /// with `encryption.key-id` set can construct an `EncryptionManager`. + /// + /// # Example + /// + /// ```rust,ignore + /// use iceberg::CatalogBuilder; + /// use iceberg::encryption::kms::KmsClientFactory; + /// use std::sync::Arc; + /// + /// let catalog = MyCatalogBuilder::default() + /// .with_kms_client_factory(Arc::new(MyKmsClientFactory)) + /// .load("my_catalog", props) + /// .await?; + /// ``` + fn with_kms_client_factory(self, kms_client_factory: Arc) -> Self; + /// Set a custom tokio Runtime to use for spawning async tasks. /// /// When a Runtime is provided, the catalog will propagate it to all tables diff --git a/crates/iceberg/src/encryption/kms/factory.rs b/crates/iceberg/src/encryption/kms/factory.rs new file mode 100644 index 0000000000..b957b5a5f6 --- /dev/null +++ b/crates/iceberg/src/encryption/kms/factory.rs @@ -0,0 +1,51 @@ +// 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. + +//! Factory trait for creating [`KeyManagementClient`] instances. + +use std::collections::HashMap; +use std::fmt::Debug; +use std::sync::Arc; + +use async_trait::async_trait; + +use super::KeyManagementClient; +use crate::Result; + +/// Factory for creating a [`KeyManagementClient`] from catalog properties. +/// +/// Replaces Java's reflection-based `encryption.kms-impl` + `initialize(properties)` +/// pattern. Users provide an implementation of this trait to the catalog builder via +/// [`CatalogBuilder::with_kms_client_factory`](crate::CatalogBuilder::with_kms_client_factory). +/// +/// The catalog calls [`create_kms_client`](Self::create_kms_client) **once** during +/// catalog initialization with the catalog's properties. The resulting client is +/// shared across all tables in the catalog and passed to each table's +/// [`EncryptionManager`](crate::encryption::EncryptionManager) via +/// `TableBuilder::kms_client(...)`. +#[async_trait] +pub trait KmsClientFactory: Debug + Send + Sync { + /// Create a [`KeyManagementClient`] from catalog properties. + /// + /// Called once during catalog initialization. Properties may include + /// KMS endpoint, region, credentials, or any backend-specific + /// configuration needed to construct the client. + async fn create_kms_client( + &self, + properties: &HashMap, + ) -> Result>; +} diff --git a/crates/iceberg/src/encryption/kms/memory.rs b/crates/iceberg/src/encryption/kms/memory.rs index 65319831dd..4c95b8421a 100644 --- a/crates/iceberg/src/encryption/kms/memory.rs +++ b/crates/iceberg/src/encryption/kms/memory.rs @@ -27,6 +27,7 @@ use std::sync::{Arc, RwLock}; use async_trait::async_trait; use super::KeyManagementClient; +use super::factory::KmsClientFactory; use crate::encryption::{AesGcmCipher, AesKeySize, SecureKey, SensitiveBytes}; use crate::error::lock_error; use crate::{Error, ErrorKind, Result}; @@ -142,6 +143,71 @@ impl MemoryKeyManagementClient { } } +/// Factory for creating [`MemoryKeyManagementClient`] instances. +/// +/// The factory owns the master-key table and its key size; seed it with +/// [`add_master_key`](Self::add_master_key) / +/// [`add_master_key_bytes`](Self::add_master_key_bytes), then every client it +/// produces via [`create_kms_client`](KmsClientFactory::create_kms_client) +/// shares that same table. Useful for testing encryption flows without a real +/// KMS backend. +#[derive(Debug, Clone, Default)] +pub struct MemoryKmsClientFactory { + master_keys: Arc>>, + master_key_size: AesKeySize, +} + +impl MemoryKmsClientFactory { + /// Creates a new factory with 128-bit AES master keys. + pub fn new() -> Self { + Self::default() + } + + /// Creates a new factory whose clients use the given master key size. + pub fn with_master_key_size(master_key_size: AesKeySize) -> Self { + Self { + master_keys: Arc::new(RwLock::new(HashMap::new())), + master_key_size, + } + } + + /// A client view over this factory's shared master-key table. + fn client(&self) -> MemoryKeyManagementClient { + MemoryKeyManagementClient { + master_keys: Arc::clone(&self.master_keys), + master_key_size: self.master_key_size, + } + } + + /// Adds a randomly generated master key with the given ID. + pub fn add_master_key(&self, key_id: impl Into) -> Result<()> { + self.client().add_master_key(key_id) + } + + /// Adds a master key with explicit key bytes. + /// + /// Use this to seed the factory with known key material, e.g. for + /// cross-language integration tests where both Java and Rust must + /// share the same master key bytes. + pub fn add_master_key_bytes( + &self, + key_id: impl Into, + key_bytes: SensitiveBytes, + ) -> Result<()> { + self.client().add_master_key_bytes(key_id, key_bytes) + } +} + +#[async_trait] +impl KmsClientFactory for MemoryKmsClientFactory { + async fn create_kms_client( + &self, + _properties: &HashMap, + ) -> Result> { + Ok(Arc::new(self.client())) + } +} + #[async_trait] impl KeyManagementClient for MemoryKeyManagementClient { async fn wrap_key(&self, key: &[u8], wrapping_key_id: &str) -> Result> { @@ -293,4 +359,46 @@ mod tests { kms1.add_master_key("shared-key").unwrap(); assert!(kms2.has_key("shared-key")); } + + #[tokio::test] + async fn test_factory_seeds_produced_clients() { + // Seed the factory, then every client it produces sees those keys and + // can wrap/unwrap with them. + let factory = MemoryKmsClientFactory::new(); + factory + .add_master_key_bytes("master-1", SensitiveBytes::new([9u8; 16])) + .unwrap(); + + let client = factory.create_kms_client(&HashMap::new()).await.unwrap(); + + let dek = vec![3u8; 16]; + let wrapped = client.wrap_key(&dek, "master-1").await.unwrap(); + let unwrapped = client.unwrap_key(&wrapped, "master-1").await.unwrap(); + assert_eq!(unwrapped.as_bytes(), dek.as_slice()); + } + + #[tokio::test] + async fn test_factory_seeding_after_client_creation_is_visible() { + // The factory owns the shared table, so keys added after a client is + // produced are still visible to that client. + let factory = MemoryKmsClientFactory::new(); + let client = factory.create_kms_client(&HashMap::new()).await.unwrap(); + + factory.add_master_key("late-key").unwrap(); + + let dek = vec![1u8; 16]; + assert!(client.wrap_key(&dek, "late-key").await.is_ok()); + } + + #[tokio::test] + async fn test_factory_with_master_key_size() { + let factory = MemoryKmsClientFactory::with_master_key_size(AesKeySize::Bits256); + factory.add_master_key("master-256").unwrap(); + + let client = factory.create_kms_client(&HashMap::new()).await.unwrap(); + let dek = vec![0u8; 16]; + let wrapped = client.wrap_key(&dek, "master-256").await.unwrap(); + let unwrapped = client.unwrap_key(&wrapped, "master-256").await.unwrap(); + assert_eq!(unwrapped.as_bytes(), dek.as_slice()); + } } diff --git a/crates/iceberg/src/encryption/kms/mod.rs b/crates/iceberg/src/encryption/kms/mod.rs index 160e692550..0b4f331d13 100644 --- a/crates/iceberg/src/encryption/kms/mod.rs +++ b/crates/iceberg/src/encryption/kms/mod.rs @@ -21,7 +21,9 @@ //! integration and implementations for different key management systems. mod client; +mod factory; mod memory; pub use client::{GeneratedKey, KeyManagementClient}; -pub use memory::MemoryKeyManagementClient; +pub use factory::KmsClientFactory; +pub use memory::{MemoryKeyManagementClient, MemoryKmsClientFactory}; diff --git a/crates/iceberg/src/spec/values/datum.rs b/crates/iceberg/src/spec/values/datum.rs index 2040d4634a..9e7b9a19ed 100644 --- a/crates/iceberg/src/spec/values/datum.rs +++ b/crates/iceberg/src/spec/values/datum.rs @@ -1086,6 +1086,16 @@ impl Datum { } } + fn f64_to_f32(val: f64) -> Datum { + if val > f32::MAX as f64 { + Datum::new(PrimitiveType::Float, PrimitiveLiteral::AboveMax) + } else if val < (f32::MIN as f64) { + Datum::new(PrimitiveType::Float, PrimitiveLiteral::BelowMin) + } else { + Datum::float(val as f32) + } + } + fn string_to_i128>(s: S) -> Result { s.as_ref().parse::().map_err(|e| { Error::new(ErrorKind::DataInvalid, "Can't parse string to i128.").with_source(e) @@ -1123,6 +1133,12 @@ impl Datum { (PrimitiveLiteral::Long(val), _, PrimitiveType::Int) => { Ok(Datum::i64_to_i32(*val)) } + (PrimitiveLiteral::Double(val), _, PrimitiveType::Float) => { + Ok(Datum::f64_to_f32(val.0)) + } + (PrimitiveLiteral::Float(val), _, PrimitiveType::Double) => { + Ok(Datum::double(val.0 as f64)) + } (PrimitiveLiteral::Long(val), _, PrimitiveType::Timestamp) => { Ok(Datum::timestamp_micros(*val)) } diff --git a/crates/iceberg/src/spec/values/tests.rs b/crates/iceberg/src/spec/values/tests.rs index bc8b011fdb..a8a6716f9d 100644 --- a/crates/iceberg/src/spec/values/tests.rs +++ b/crates/iceberg/src/spec/values/tests.rs @@ -1183,6 +1183,50 @@ fn test_datum_long_convert_to_int_below_min() { assert_eq!(result, expected); } +#[test] +fn test_datum_double_convert_to_float() { + let datum = Datum::double(2.5); + + let result = datum.to(&Primitive(PrimitiveType::Float)).unwrap(); + + let expected = Datum::float(2.5); + + assert_eq!(result, expected); +} + +#[test] +fn test_datum_double_convert_to_float_above_max() { + let datum = Datum::double(1e39); + + let result = datum.to(&Primitive(PrimitiveType::Float)).unwrap(); + + let expected = Datum::new(PrimitiveType::Float, PrimitiveLiteral::AboveMax); + + assert_eq!(result, expected); +} + +#[test] +fn test_datum_double_convert_to_float_below_min() { + let datum = Datum::double(-1e39); + + let result = datum.to(&Primitive(PrimitiveType::Float)).unwrap(); + + let expected = Datum::new(PrimitiveType::Float, PrimitiveLiteral::BelowMin); + + assert_eq!(result, expected); +} + +#[test] +fn test_datum_float_convert_to_double() { + let datum = Datum::float(2.5); + + let result = datum.to(&Primitive(PrimitiveType::Double)).unwrap(); + + let expected = Datum::double(2.5); + + assert_eq!(result, expected); +} + #[test] fn test_datum_long_convert_to_timestamp() { let datum = Datum::long(12345); diff --git a/crates/iceberg/src/transaction/snapshot.rs b/crates/iceberg/src/transaction/snapshot.rs index f8235e67d4..d200c5ba9c 100644 --- a/crates/iceberg/src/transaction/snapshot.rs +++ b/crates/iceberg/src/transaction/snapshot.rs @@ -334,7 +334,9 @@ impl<'a> SnapshotProducer<'a> { writer.write_manifest_file().await } - async fn manifest_file( + /// Creates new manifests for data files added or removed, + /// and collects all of the manifests to be included in the new snapshot as [ManifestFile] entries. + async fn produce_manifests( &mut self, snapshot_produce_operation: &OP, manifest_process: &MP, @@ -468,15 +470,15 @@ impl<'a> SnapshotProducer<'a> { ), }; - // Calling self.summary() before self.manifest_file() is important because self.added_data_files - // will be set to an empty vec after self.manifest_file() returns, resulting in an empty summary + // Calling self.summary() before self.produce_manifests() is important because self.added_data_files + // will be set to an empty vec after self.produce_manifests() returns, resulting in an empty summary // being generated. let summary = self.summary(&snapshot_produce_operation).map_err(|err| { Error::new(ErrorKind::Unexpected, "Failed to create snapshot summary.").with_source(err) })?; let new_manifests = self - .manifest_file(&snapshot_produce_operation, &process) + .produce_manifests(&snapshot_produce_operation, &process) .await?; manifest_list_writer.add_manifests(new_manifests.into_iter())?; diff --git a/crates/iceberg/src/util/snapshot.rs b/crates/iceberg/src/util/snapshot.rs index 98997ae815..a96fd97831 100644 --- a/crates/iceberg/src/util/snapshot.rs +++ b/crates/iceberg/src/util/snapshot.rs @@ -48,6 +48,11 @@ pub fn ancestors_of( } /// Iterate starting from `latest_snapshot_id` (inclusive) to `oldest_snapshot_id` (exclusive). +/// +/// Note: if `oldest_snapshot_id` is `Some(id)` but `id` is not actually an +/// ancestor of `latest_snapshot_id`, the walk is never stopped and this yields +/// *all* ancestors of `latest_snapshot_id` down to the root. Callers that treat +/// `oldest_snapshot_id` as a lower bound must validate the lineage themselves. pub fn ancestors_between( table_metadata: &TableMetadataRef, latest_snapshot_id: i64, diff --git a/crates/integration_tests/DEPENDENCIES.rust.tsv b/crates/integration_tests/DEPENDENCIES.rust.tsv index 5bb9a72a6d..fd11cbe74c 100644 --- a/crates/integration_tests/DEPENDENCIES.rust.tsv +++ b/crates/integration_tests/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X @@ -16,7 +16,7 @@ arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -26,31 +26,35 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X -aws-lc-rs@1.16.2 X X -aws-lc-sys@0.39.0 X X X X X +autocfg@1.5.1 X X +aws-lc-rs@1.17.1 X X +aws-lc-sys@0.42.0 X X X X X backon@1.6.0 X base64@0.22.1 X X +base64ct@1.8.3 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X -block-buffer@0.12.0 X X +block-buffer@0.12.1 X X +block-padding@0.3.3 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X -cc@1.2.57 X X +cbc@0.1.2 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X -cmake@0.1.57 X X +cmake@0.1.58 X X +cmov@0.5.4 X X combine@4.6.7 X concurrent-queue@2.5.0 X X const-oid@0.10.2 X X @@ -60,40 +64,43 @@ const-random-macro@0.1.16 X X core-foundation@0.10.1 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X +cpufeatures@0.3.0 X X crc32c@0.6.8 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X crypto-common@0.2.2 X X -ctor@1.0.7 X X +ctor@1.0.8 X X ctr@0.9.2 X X +ctutils@0.4.2 X X darling@0.20.11 X darling@0.23.0 X darling_core@0.20.11 X darling_core@0.23.0 X darling_macro@0.20.11 X darling_macro@0.23.0 X +der@0.7.10 X X derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X digest@0.11.3 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X dlv-list@0.5.2 X X dunce@1.0.5 X X X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -112,25 +119,25 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X -h2@0.4.13 X +h2@0.4.15 X half@2.7.1 X X hashbrown@0.14.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X hex@0.4.3 X X hmac@0.12.1 X X -http@1.4.0 X X +hmac@0.13.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X httpdate@1.0.3 X X -hybrid-array@0.4.12 X X -hyper@1.8.1 X -hyper-rustls@0.27.7 X X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X +hyper-rustls@0.27.9 X X X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X @@ -139,33 +146,32 @@ iceberg-catalog-rest@0.10.0 X iceberg-integration-tests@0.10.0 X iceberg-storage-opendal@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jiff@0.2.23 X X -jiff-tzdb@0.1.6 X X +jiff@0.2.31 X X +jiff-tzdb@0.1.7 X X jiff-tzdb-platform@0.1.3 X X jni@0.22.4 X X jni-macros@0.22.4 X X jni-sys@0.4.1 X X jni-sys-macros@0.4.1 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -173,26 +179,28 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -link-section@0.18.1 X X +link-section@0.19.0 X X linktime-proc-macro@0.2.0 X X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X +log@0.4.33 X X +lz4_flex@0.13.1 X md-5@0.11.0 X X -mea@0.6.3 X -memchr@2.8.0 X X +mea@0.6.4 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X +num-bigint-dig@0.8.6 X X num-complex@0.4.6 X X num-integer@0.1.46 X X +num-iter@0.1.46 X X num-traits@0.2.19 X X once_cell@1.21.4 X X opaque-debug@0.3.1 X X @@ -211,85 +219,100 @@ ordered-multimap@0.7.3 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X +pbkdf2@0.12.2 X X +pem-rfc7468@0.7.0 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkcs1@0.7.5 X X +pkcs5@0.7.1 X X +pkcs8@0.10.2 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X quick-xml@0.39.4 X -quote@1.0.45 X X +quick-xml@0.40.1 X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.8.6 X X +rand@0.9.5 X X +rand_chacha@0.3.1 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X -reqsign-aws-v4@3.0.0 X -reqsign-core@3.0.0 X -reqsign-file-read-tokio@3.0.0 X +regex-syntax@0.8.11 X X +reqsign-aws-v4@3.0.1 X +reqsign-core@3.0.1 X +reqsign-file-read-tokio@3.0.1 X reqwest@0.12.28 X X -reqwest@0.13.3 X X +reqwest@0.13.4 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X +rsa@0.9.10 X X rust-ini@0.21.3 X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustls@0.23.37 X X X -rustls-native-certs@0.8.3 X X X -rustls-pki-types@1.14.0 X X +rustls@0.23.41 X X X +rustls-native-certs@0.8.4 X X X +rustls-pki-types@1.15.0 X X rustls-platform-verifier@0.7.0 X X rustls-platform-verifier-android@0.1.1 X X rustls-webpki@0.103.13 X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X +salsa20@0.10.2 X X same-file@1.0.6 X X schannel@0.1.29 X scopeguard@1.2.0 X X +scrypt@0.11.0 X X security-framework@3.7.0 X X security-framework-sys@2.17.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X -sha1@0.10.6 X X +sha1@0.11.0 X X sha2@0.10.9 X X +sha2@0.11.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X -simd-adler32@0.3.8 X +shlex@2.0.1 X X +signature@2.2.0 X X +simd-adler32@0.3.9 X simd_cesu8@1.1.1 X X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X +spin@0.9.8 X +spki@0.7.3 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -298,13 +321,13 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-rustls@0.26.4 X X tokio-util@0.7.18 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -318,29 +341,28 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X wasm-streams@0.5.0 X X -web-sys@0.3.91 X X +web-sys@0.3.103 X X web-time@1.1.0 X X -webpki-root-certs@1.0.7 X +webpki-root-certs@1.0.8 X winapi-util@0.1.11 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X @@ -350,48 +372,38 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X xattr@1.6.1 X X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/integrations/cache-moka/DEPENDENCIES.rust.tsv b/crates/integrations/cache-moka/DEPENDENCIES.rust.tsv index 9ca23a3fbc..f5192eb5a9 100644 --- a/crates/integrations/cache-moka/DEPENDENCIES.rust.tsv +++ b/crates/integrations/cache-moka/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X @@ -16,7 +16,7 @@ arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -26,26 +26,26 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X +autocfg@1.5.1 X X backon@1.6.0 X base64@0.22.1 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X concurrent-queue@2.5.0 X X const-random@0.1.18 X X @@ -53,9 +53,9 @@ const-random-macro@0.1.16 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X ctr@0.9.2 X X @@ -69,16 +69,16 @@ derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -96,43 +96,41 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X half@2.7.1 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X -http@1.4.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -hyper@1.8.1 X +hyper@1.10.1 X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X iceberg@0.10.0 X iceberg-cache-moka@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X +idna_adapter@1.2.2 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -140,19 +138,19 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X -memchr@2.8.0 X X +log@0.4.33 X X +lz4_flex@0.13.1 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X num-integer@0.1.46 X X num-traits@0.2.19 X X @@ -163,64 +161,64 @@ ordered-float@4.6.0 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -potential_utf@0.1.4 X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.9.5 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X scopeguard@1.2.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X -simd-adler32@0.3.8 X +shlex@2.0.1 X X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -229,11 +227,11 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -247,25 +245,24 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -web-sys@0.3.91 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +web-sys@0.3.103 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X windows-interface@0.59.3 X X @@ -273,39 +270,29 @@ windows-link@0.2.1 X X windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/integrations/datafusion/DEPENDENCIES.rust.tsv b/crates/integrations/datafusion/DEPENDENCIES.rust.tsv index 72d6d7fd2c..5301d6ee65 100644 --- a/crates/integrations/datafusion/DEPENDENCIES.rust.tsv +++ b/crates/integrations/datafusion/DEPENDENCIES.rust.tsv @@ -6,75 +6,79 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X allocator-api2@0.2.21 X X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X -ar_archive_writer@0.5.1 X +ar_archive_writer@0.5.2 X array-init@2.1.0 X X arrayref@0.3.9 X -arrayvec@0.7.6 X X -arrow@58.1.0 X +arrayvec@0.7.8 X X +arrow@58.3.0 X arrow-arith@58.3.0 X arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X -arrow-csv@58.1.0 X +arrow-csv@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X -arrow-json@58.1.0 X +arrow-ipc@58.3.0 X +arrow-json@58.3.0 X arrow-ord@58.3.0 X -arrow-row@58.1.0 X +arrow-row@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X arrow-string@58.3.0 X as-any@0.3.2 X X -async-compression@0.4.41 X X +async-compression@0.4.42 X X async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X +autocfg@1.5.1 X X backon@1.6.0 X base64@0.22.1 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X blake2@0.10.6 X X -blake3@1.8.3 X X X +blake3@1.8.5 X X X block-buffer@0.10.4 X X +block-buffer@0.12.1 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X bzip2@0.6.1 X X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X chrono-tz@0.10.4 X X cipher@0.4.4 X X comfy-table@7.2.2 X -compression-codecs@0.4.37 X X -compression-core@0.4.31 X X +compression-codecs@0.4.38 X X +compression-core@0.4.32 X X concurrent-queue@2.5.0 X X +const-oid@0.10.2 X X const-random@0.1.18 X X const-random-macro@0.1.16 X X constant_time_eq@0.4.2 X X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X +cpufeatures@0.3.0 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X +crypto-common@0.2.2 X X csv@1.4.0 X X csv-core@0.1.13 X X ctr@0.9.2 X X @@ -85,52 +89,53 @@ darling_core@0.23.0 X darling_macro@0.20.11 X darling_macro@0.23.0 X dashmap@6.2.1 X -datafusion@53.1.0 X -datafusion-catalog@53.1.0 X -datafusion-catalog-listing@53.1.0 X -datafusion-common@53.1.0 X -datafusion-common-runtime@53.1.0 X -datafusion-datasource@53.1.0 X -datafusion-datasource-arrow@53.1.0 X -datafusion-datasource-csv@53.1.0 X -datafusion-datasource-json@53.1.0 X -datafusion-datasource-parquet@53.1.0 X -datafusion-doc@53.1.0 X -datafusion-execution@53.1.0 X -datafusion-expr@53.1.0 X -datafusion-expr-common@53.1.0 X -datafusion-functions@53.1.0 X -datafusion-functions-aggregate@53.1.0 X -datafusion-functions-aggregate-common@53.1.0 X -datafusion-functions-nested@53.1.0 X -datafusion-functions-table@53.1.0 X -datafusion-functions-window@53.1.0 X -datafusion-functions-window-common@53.1.0 X -datafusion-macros@53.1.0 X -datafusion-optimizer@53.1.0 X -datafusion-physical-expr@53.1.0 X -datafusion-physical-expr-adapter@53.1.0 X -datafusion-physical-expr-common@53.1.0 X -datafusion-physical-optimizer@53.1.0 X -datafusion-physical-plan@53.1.0 X -datafusion-pruning@53.1.0 X -datafusion-session@53.1.0 X -datafusion-sql@53.1.0 X +datafusion@54.0.0 X +datafusion-catalog@54.0.0 X +datafusion-catalog-listing@54.0.0 X +datafusion-common@54.0.0 X +datafusion-common-runtime@54.0.0 X +datafusion-datasource@54.0.0 X +datafusion-datasource-arrow@54.0.0 X +datafusion-datasource-csv@54.0.0 X +datafusion-datasource-json@54.0.0 X +datafusion-datasource-parquet@54.0.0 X +datafusion-doc@54.0.0 X +datafusion-execution@54.0.0 X +datafusion-expr@54.0.0 X +datafusion-expr-common@54.0.0 X +datafusion-functions@54.0.0 X +datafusion-functions-aggregate@54.0.0 X +datafusion-functions-aggregate-common@54.0.0 X +datafusion-functions-nested@54.0.0 X +datafusion-functions-table@54.0.0 X +datafusion-functions-window@54.0.0 X +datafusion-functions-window-common@54.0.0 X +datafusion-macros@54.0.0 X +datafusion-optimizer@54.0.0 X +datafusion-physical-expr@54.0.0 X +datafusion-physical-expr-adapter@54.0.0 X +datafusion-physical-expr-common@54.0.0 X +datafusion-physical-optimizer@54.0.0 X +datafusion-physical-plan@54.0.0 X +datafusion-pruning@54.0.0 X +datafusion-session@54.0.0 X +datafusion-sql@54.0.0 X derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X -displaydoc@0.2.5 X X +digest@0.11.3 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X fixedbitset@0.5.7 X X flatbuffers@25.12.19 X @@ -151,50 +156,49 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X glob@0.3.3 X X gloo-timers@0.3.0 X X half@2.7.1 X X hashbrown@0.14.5 X X hashbrown@0.15.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X hex@0.4.3 X X -http@1.4.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -humantime@2.3.0 X X -hyper@1.8.1 X +humantime@2.4.0 X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X iceberg@0.10.0 X iceberg-datafusion@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itertools@0.14.0 X X itoa@1.0.18 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -202,24 +206,24 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libbz2-rs-sys@0.2.2 X -libc@0.2.183 X X -liblzma@0.4.6 X X -liblzma-sys@0.4.5 X X +libbz2-rs-sys@0.2.5 X +libc@0.2.186 X X +liblzma@0.4.7 X X +liblzma-sys@0.4.7 X X libm@0.2.16 X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X -md-5@0.10.6 X X -memchr@2.8.0 X X +log@0.4.33 X X +lz4_flex@0.13.1 X +md-5@0.11.0 X X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X num-integer@0.1.46 X X num-traits@0.2.19 X X @@ -232,77 +236,79 @@ ordered-float@4.6.0 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X percent-encoding@2.3.2 X X petgraph@0.8.3 X X phf@0.12.1 X phf_shared@0.12.1 X +pin-project@1.1.13 X X +pin-project-internal@1.1.13 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -potential_utf@0.1.4 X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X -psm@0.1.30 X X +psm@0.1.31 X X quad-rand@0.2.3 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.9.5 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X recursive@0.1.1 X recursive-proc-macro-impl@0.1.1 X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X same-file@1.0.6 X X scopeguard@1.2.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X -sha2@0.10.9 X X +sha2@0.11.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X -simd-adler32@0.3.8 X +shlex@2.0.1 X X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X -siphasher@1.0.2 X X +siphasher@1.0.3 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X -sqlparser@0.61.0 X +socket2@0.5.10 X X +socket2@0.6.4 X X +sqlparser@0.62.0 X sqlparser_derive@0.5.0 X stable_deref_trait@1.2.1 X X -stacker@0.1.23 X X +stacker@0.1.24 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -312,13 +318,13 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-stream@0.1.18 X tokio-util@0.7.18 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -332,28 +338,27 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X -unicode-segmentation@1.12.0 X X +unicode-segmentation@1.13.3 X X unicode-width@0.2.2 X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -web-sys@0.3.91 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +web-sys@0.3.103 X X web-time@1.1.0 X X winapi-util@0.1.11 X X windows-core@0.62.2 X X @@ -364,48 +369,37 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.59.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/integrations/datafusion/public-api.txt b/crates/integrations/datafusion/public-api.txt index d24bd9fc9e..e197c2057d 100644 --- a/crates/integrations/datafusion/public-api.txt +++ b/crates/integrations/datafusion/public-api.txt @@ -8,7 +8,6 @@ pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::clone(& impl core::fmt::Debug for iceberg_datafusion::metadata_table::IcebergMetadataTableProvider pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl datafusion_catalog::table::TableProvider for iceberg_datafusion::metadata_table::IcebergMetadataTableProvider -pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::as_any(&self) -> &dyn core::any::Any pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(&'life0 self, _state: &'life1 dyn datafusion_session::session::Session, _projection: core::option::Option<&'life2 alloc::vec::Vec>, _filters: &'life3 [datafusion_expr::expr::Expr], _limit: core::option::Option) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::schema(&self) -> arrow_schema::schema::SchemaRef pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::table_type(&self) -> datafusion_expr::table_source::TableType @@ -25,7 +24,6 @@ pub fn iceberg_datafusion::physical_plan::IcebergTableScan::fmt(&self, f: &mut c impl datafusion_physical_plan::display::DisplayAs for iceberg_datafusion::physical_plan::IcebergTableScan pub fn iceberg_datafusion::physical_plan::IcebergTableScan::fmt_as(&self, _t: datafusion_physical_plan::display::DisplayFormatType, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl datafusion_physical_plan::execution_plan::ExecutionPlan for iceberg_datafusion::physical_plan::IcebergTableScan -pub fn iceberg_datafusion::physical_plan::IcebergTableScan::as_any(&self) -> &dyn core::any::Any pub fn iceberg_datafusion::physical_plan::IcebergTableScan::children(&self) -> alloc::vec::Vec<&alloc::sync::Arc<(dyn datafusion_physical_plan::execution_plan::ExecutionPlan + 'static)>> pub fn iceberg_datafusion::physical_plan::IcebergTableScan::execute(&self, _partition: usize, _context: alloc::sync::Arc) -> datafusion_common::error::Result pub fn iceberg_datafusion::physical_plan::IcebergTableScan::name(&self) -> &str @@ -43,7 +41,6 @@ pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::clone(& impl core::fmt::Debug for iceberg_datafusion::metadata_table::IcebergMetadataTableProvider pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl datafusion_catalog::table::TableProvider for iceberg_datafusion::metadata_table::IcebergMetadataTableProvider -pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::as_any(&self) -> &dyn core::any::Any pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(&'life0 self, _state: &'life1 dyn datafusion_session::session::Session, _projection: core::option::Option<&'life2 alloc::vec::Vec>, _filters: &'life3 [datafusion_expr::expr::Expr], _limit: core::option::Option) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::schema(&self) -> arrow_schema::schema::SchemaRef pub fn iceberg_datafusion::metadata_table::IcebergMetadataTableProvider::table_type(&self) -> datafusion_expr::table_source::TableType @@ -67,7 +64,6 @@ pub fn iceberg_datafusion::IcebergStaticTableProvider::clone(&self) -> iceberg_d impl core::fmt::Debug for iceberg_datafusion::IcebergStaticTableProvider pub fn iceberg_datafusion::IcebergStaticTableProvider::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl datafusion_catalog::table::TableProvider for iceberg_datafusion::IcebergStaticTableProvider -pub fn iceberg_datafusion::IcebergStaticTableProvider::as_any(&self) -> &dyn core::any::Any pub fn iceberg_datafusion::IcebergStaticTableProvider::insert_into<'life0, 'life1, 'async_trait>(&'life0 self, _state: &'life1 dyn datafusion_session::session::Session, _input: alloc::sync::Arc, _insert_op: datafusion_expr::logical_plan::dml::InsertOp) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub fn iceberg_datafusion::IcebergStaticTableProvider::scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(&'life0 self, _state: &'life1 dyn datafusion_session::session::Session, projection: core::option::Option<&'life2 alloc::vec::Vec>, filters: &'life3 [datafusion_expr::expr::Expr], limit: core::option::Option) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait pub fn iceberg_datafusion::IcebergStaticTableProvider::schema(&self) -> arrow_schema::schema::SchemaRef @@ -79,7 +75,6 @@ pub fn iceberg_datafusion::IcebergTableProvider::clone(&self) -> iceberg_datafus impl core::fmt::Debug for iceberg_datafusion::IcebergTableProvider pub fn iceberg_datafusion::IcebergTableProvider::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl datafusion_catalog::table::TableProvider for iceberg_datafusion::IcebergTableProvider -pub fn iceberg_datafusion::IcebergTableProvider::as_any(&self) -> &dyn core::any::Any pub fn iceberg_datafusion::IcebergTableProvider::insert_into<'life0, 'life1, 'async_trait>(&'life0 self, state: &'life1 dyn datafusion_session::session::Session, input: alloc::sync::Arc, _insert_op: datafusion_expr::logical_plan::dml::InsertOp) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub fn iceberg_datafusion::IcebergTableProvider::scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(&'life0 self, _state: &'life1 dyn datafusion_session::session::Session, projection: core::option::Option<&'life2 alloc::vec::Vec>, filters: &'life3 [datafusion_expr::expr::Expr], limit: core::option::Option) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait pub fn iceberg_datafusion::IcebergTableProvider::schema(&self) -> arrow_schema::schema::SchemaRef @@ -102,7 +97,6 @@ pub async fn iceberg_datafusion::IcebergCatalogProvider::try_new(client: alloc:: impl core::fmt::Debug for iceberg_datafusion::IcebergCatalogProvider pub fn iceberg_datafusion::IcebergCatalogProvider::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl datafusion_catalog::catalog::CatalogProvider for iceberg_datafusion::IcebergCatalogProvider -pub fn iceberg_datafusion::IcebergCatalogProvider::as_any(&self) -> &dyn core::any::Any pub fn iceberg_datafusion::IcebergCatalogProvider::schema(&self, name: &str) -> core::option::Option> pub fn iceberg_datafusion::IcebergCatalogProvider::schema_names(&self) -> alloc::vec::Vec pub struct iceberg_datafusion::IcebergStaticTableProvider @@ -114,7 +108,6 @@ pub fn iceberg_datafusion::IcebergStaticTableProvider::clone(&self) -> iceberg_d impl core::fmt::Debug for iceberg_datafusion::IcebergStaticTableProvider pub fn iceberg_datafusion::IcebergStaticTableProvider::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl datafusion_catalog::table::TableProvider for iceberg_datafusion::IcebergStaticTableProvider -pub fn iceberg_datafusion::IcebergStaticTableProvider::as_any(&self) -> &dyn core::any::Any pub fn iceberg_datafusion::IcebergStaticTableProvider::insert_into<'life0, 'life1, 'async_trait>(&'life0 self, _state: &'life1 dyn datafusion_session::session::Session, _input: alloc::sync::Arc, _insert_op: datafusion_expr::logical_plan::dml::InsertOp) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub fn iceberg_datafusion::IcebergStaticTableProvider::scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(&'life0 self, _state: &'life1 dyn datafusion_session::session::Session, projection: core::option::Option<&'life2 alloc::vec::Vec>, filters: &'life3 [datafusion_expr::expr::Expr], limit: core::option::Option) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait pub fn iceberg_datafusion::IcebergStaticTableProvider::schema(&self) -> arrow_schema::schema::SchemaRef @@ -126,7 +119,6 @@ pub fn iceberg_datafusion::IcebergTableProvider::clone(&self) -> iceberg_datafus impl core::fmt::Debug for iceberg_datafusion::IcebergTableProvider pub fn iceberg_datafusion::IcebergTableProvider::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl datafusion_catalog::table::TableProvider for iceberg_datafusion::IcebergTableProvider -pub fn iceberg_datafusion::IcebergTableProvider::as_any(&self) -> &dyn core::any::Any pub fn iceberg_datafusion::IcebergTableProvider::insert_into<'life0, 'life1, 'async_trait>(&'life0 self, state: &'life1 dyn datafusion_session::session::Session, input: alloc::sync::Arc, _insert_op: datafusion_expr::logical_plan::dml::InsertOp) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub fn iceberg_datafusion::IcebergTableProvider::scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(&'life0 self, _state: &'life1 dyn datafusion_session::session::Session, projection: core::option::Option<&'life2 alloc::vec::Vec>, filters: &'life3 [datafusion_expr::expr::Expr], limit: core::option::Option) -> core::pin::Pin>> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait pub fn iceberg_datafusion::IcebergTableProvider::schema(&self) -> arrow_schema::schema::SchemaRef diff --git a/crates/integrations/datafusion/src/catalog.rs b/crates/integrations/datafusion/src/catalog.rs index 69ab68f93a..2c6e1ff002 100644 --- a/crates/integrations/datafusion/src/catalog.rs +++ b/crates/integrations/datafusion/src/catalog.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::collections::HashMap; use std::sync::Arc; @@ -84,10 +83,6 @@ impl IcebergCatalogProvider { } impl CatalogProvider for IcebergCatalogProvider { - fn as_any(&self) -> &dyn Any { - self - } - fn schema_names(&self) -> Vec { self.schemas.keys().cloned().collect() } diff --git a/crates/integrations/datafusion/src/physical_plan/commit.rs b/crates/integrations/datafusion/src/physical_plan/commit.rs index ec2376493d..9ae8b845ce 100644 --- a/crates/integrations/datafusion/src/physical_plan/commit.rs +++ b/crates/integrations/datafusion/src/physical_plan/commit.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::fmt::{Debug, Formatter}; use std::sync::Arc; @@ -129,10 +128,6 @@ impl ExecutionPlan for IcebergCommitExec { "IcebergCommitExec" } - fn as_any(&self) -> &dyn Any { - self - } - fn properties(&self) -> &Arc { &self.plan_properties } @@ -331,10 +326,6 @@ mod tests { "MockWriteExec" } - fn as_any(&self) -> &dyn Any { - self - } - fn schema(&self) -> Arc { self.schema.clone() } diff --git a/crates/integrations/datafusion/src/physical_plan/expr_to_predicate.rs b/crates/integrations/datafusion/src/physical_plan/expr_to_predicate.rs index f0e6639243..fb5440a98a 100644 --- a/crates/integrations/datafusion/src/physical_plan/expr_to_predicate.rs +++ b/crates/integrations/datafusion/src/physical_plan/expr_to_predicate.rs @@ -140,7 +140,8 @@ fn to_iceberg_predicate(expr: &Expr) -> TransformedResult { } } Expr::Cast(c) => { - if c.data_type == DataType::Date32 || c.data_type == DataType::Date64 { + if *c.field.data_type() == DataType::Date32 || *c.field.data_type() == DataType::Date64 + { // Casts to date truncate the expression, we cannot simply extract it as it // can create erroneous predicates. return TransformedResult::NotTransformed; @@ -262,7 +263,9 @@ fn resolve_nan_preserving_reference(expr: &Expr) -> Option { Expr::Cast(cast) => { // Casts to date truncate the value and are not numeric, so they // cannot be treated as NaN-preserving. - if cast.data_type == DataType::Date32 || cast.data_type == DataType::Date64 { + if *cast.field.data_type() == DataType::Date32 + || *cast.field.data_type() == DataType::Date64 + { return None; } resolve_nan_preserving_reference(&cast.expr) diff --git a/crates/integrations/datafusion/src/physical_plan/metadata_scan.rs b/crates/integrations/datafusion/src/physical_plan/metadata_scan.rs index a1a65dec1f..340af9ba7e 100644 --- a/crates/integrations/datafusion/src/physical_plan/metadata_scan.rs +++ b/crates/integrations/datafusion/src/physical_plan/metadata_scan.rs @@ -62,10 +62,6 @@ impl ExecutionPlan for IcebergMetadataScan { "IcebergMetadataScan" } - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn properties(&self) -> &Arc { &self.properties } diff --git a/crates/integrations/datafusion/src/physical_plan/project.rs b/crates/integrations/datafusion/src/physical_plan/project.rs index 670d961f91..b36af0a404 100644 --- a/crates/integrations/datafusion/src/physical_plan/project.rs +++ b/crates/integrations/datafusion/src/physical_plan/project.rs @@ -126,10 +126,6 @@ impl PartialEq for PartitionExpr { impl Eq for PartitionExpr {} impl PhysicalExpr for PartitionExpr { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn data_type(&self, _input_schema: &ArrowSchema) -> DFResult { Ok(self.calculator.partition_arrow_type().clone()) } diff --git a/crates/integrations/datafusion/src/physical_plan/repartition.rs b/crates/integrations/datafusion/src/physical_plan/repartition.rs index 4384983eea..31a7f94a35 100644 --- a/crates/integrations/datafusion/src/physical_plan/repartition.rs +++ b/crates/integrations/datafusion/src/physical_plan/repartition.rs @@ -503,8 +503,7 @@ mod tests { let column_names: Vec = exprs .iter() .filter_map(|expr| { - expr.as_any() - .downcast_ref::() + expr.downcast_ref::() .map(|col| col.name().to_string()) }) .collect(); @@ -731,8 +730,7 @@ mod tests { let column_names: Vec = exprs .iter() .filter_map(|expr| { - expr.as_any() - .downcast_ref::() + expr.downcast_ref::() .map(|col| col.name().to_string()) }) .collect(); diff --git a/crates/integrations/datafusion/src/physical_plan/scan.rs b/crates/integrations/datafusion/src/physical_plan/scan.rs index 36539ae503..1e53c20cec 100644 --- a/crates/integrations/datafusion/src/physical_plan/scan.rs +++ b/crates/integrations/datafusion/src/physical_plan/scan.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::pin::Pin; use std::sync::Arc; use std::vec; @@ -122,10 +121,6 @@ impl ExecutionPlan for IcebergTableScan { "IcebergTableScan" } - fn as_any(&self) -> &dyn Any { - self - } - fn children(&self) -> Vec<&Arc> { vec![] } diff --git a/crates/integrations/datafusion/src/physical_plan/write.rs b/crates/integrations/datafusion/src/physical_plan/write.rs index 2dd357e89f..a7d771ec1b 100644 --- a/crates/integrations/datafusion/src/physical_plan/write.rs +++ b/crates/integrations/datafusion/src/physical_plan/write.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::fmt::{Debug, Formatter}; use std::str::FromStr; use std::sync::Arc; @@ -138,10 +137,6 @@ impl ExecutionPlan for IcebergWriteExec { "IcebergWriteExec" } - fn as_any(&self) -> &dyn Any { - self - } - /// Prevents the introduction of additional `RepartitionExec` and processing input in parallel. fn benefits_from_input_partitioning(&self) -> Vec { vec![false] @@ -307,7 +302,6 @@ impl ExecutionPlan for IcebergWriteExec { #[cfg(test)] mod tests { - use std::any::Any; use std::collections::HashMap; use std::fmt::{Debug, Formatter}; use std::sync::Arc; @@ -380,10 +374,6 @@ mod tests { "MockExecutionPlan" } - fn as_any(&self) -> &dyn Any { - self - } - fn properties(&self) -> &Arc { &self.properties } diff --git a/crates/integrations/datafusion/src/schema.rs b/crates/integrations/datafusion/src/schema.rs index 76cf599062..70baeed5e6 100644 --- a/crates/integrations/datafusion/src/schema.rs +++ b/crates/integrations/datafusion/src/schema.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use async_trait::async_trait; @@ -95,10 +94,6 @@ impl IcebergSchemaProvider { #[async_trait] impl SchemaProvider for IcebergSchemaProvider { - fn as_any(&self) -> &dyn Any { - self - } - fn table_names(&self) -> Vec { self.tables .iter() diff --git a/crates/integrations/datafusion/src/table/metadata_table.rs b/crates/integrations/datafusion/src/table/metadata_table.rs index 38148b4084..43e069cf5a 100644 --- a/crates/integrations/datafusion/src/table/metadata_table.rs +++ b/crates/integrations/datafusion/src/table/metadata_table.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use async_trait::async_trait; @@ -45,10 +44,6 @@ pub struct IcebergMetadataTableProvider { #[async_trait] impl TableProvider for IcebergMetadataTableProvider { - fn as_any(&self) -> &dyn Any { - self - } - fn schema(&self) -> ArrowSchemaRef { let metadata_table = self.table.inspect(); let schema = match self.r#type { diff --git a/crates/integrations/datafusion/src/table/mod.rs b/crates/integrations/datafusion/src/table/mod.rs index 24ec6f6630..5c294170f2 100644 --- a/crates/integrations/datafusion/src/table/mod.rs +++ b/crates/integrations/datafusion/src/table/mod.rs @@ -28,7 +28,6 @@ pub mod metadata_table; pub mod table_provider_factory; -use std::any::Any; use std::num::NonZeroUsize; use std::sync::Arc; @@ -110,10 +109,6 @@ impl IcebergTableProvider { #[async_trait] impl TableProvider for IcebergTableProvider { - fn as_any(&self) -> &dyn Any { - self - } - fn schema(&self) -> ArrowSchemaRef { self.schema.clone() } @@ -301,10 +296,6 @@ impl IcebergStaticTableProvider { #[async_trait] impl TableProvider for IcebergStaticTableProvider { - fn as_any(&self) -> &dyn Any { - self - } - fn schema(&self) -> ArrowSchemaRef { self.schema.clone() } @@ -836,7 +827,6 @@ mod tests { // Verify that the scan plan is an IcebergTableScan let iceberg_scan = scan_plan - .as_any() .downcast_ref::() .expect("Expected IcebergTableScan"); @@ -867,7 +857,6 @@ mod tests { // Verify that the scan plan is an IcebergTableScan let iceberg_scan = scan_plan - .as_any() .downcast_ref::() .expect("Expected IcebergTableScan"); @@ -896,7 +885,6 @@ mod tests { // Verify that the scan plan is an IcebergTableScan let iceberg_scan = scan_plan - .as_any() .downcast_ref::() .expect("Expected IcebergTableScan"); diff --git a/crates/integrations/playground/DEPENDENCIES.rust.tsv b/crates/integrations/playground/DEPENDENCIES.rust.tsv index 49af43d19f..404997af20 100644 --- a/crates/integrations/playground/DEPENDENCIES.rust.tsv +++ b/crates/integrations/playground/DEPENDENCIES.rust.tsv @@ -6,102 +6,110 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X allocator-api2@0.2.21 X X android_system_properties@0.1.5 X X -anstream@0.6.21 X X anstream@1.0.0 X X anstyle@1.0.14 X X -anstyle-parse@0.2.7 X X anstyle-parse@1.0.0 X X anstyle-query@1.1.5 X X anstyle-wincon@3.0.11 X X anyhow@1.0.103 X X apache-avro@0.21.0 X -ar_archive_writer@0.5.1 X +ar_archive_writer@0.5.2 X +arc-swap@1.9.2 X X array-init@2.1.0 X X arrayref@0.3.9 X -arrayvec@0.7.6 X X -arrow@58.1.0 X +arrayvec@0.7.8 X X +arrow@58.3.0 X arrow-arith@58.3.0 X arrow-array@58.3.0 X X +arrow-avro@58.3.0 X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X -arrow-csv@58.1.0 X +arrow-csv@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X -arrow-json@58.1.0 X +arrow-ipc@58.3.0 X +arrow-json@58.3.0 X arrow-ord@58.3.0 X -arrow-row@58.1.0 X +arrow-row@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X arrow-string@58.3.0 X as-any@0.3.2 X X -async-compression@0.4.41 X X +async-compression@0.4.42 X X async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X -aws-config@1.8.15 X +autocfg@1.5.1 X X +aws-config@1.8.18 X aws-credential-types@1.2.14 X -aws-lc-rs@1.16.2 X X -aws-lc-sys@0.39.0 X X X X X -aws-runtime@1.7.2 X -aws-sdk-sso@1.97.0 X -aws-sdk-ssooidc@1.99.0 X -aws-sdk-sts@1.101.0 X -aws-sigv4@1.4.2 X -aws-smithy-async@1.2.14 X +aws-lc-rs@1.17.1 X X +aws-lc-sys@0.42.0 X X X X X +aws-runtime@1.7.5 X +aws-sdk-sso@1.102.0 X +aws-sdk-ssooidc@1.104.0 X +aws-sdk-sts@1.107.0 X +aws-sigv4@1.4.5 X +aws-smithy-async@1.3.0 X aws-smithy-http@0.63.6 X -aws-smithy-http-client@1.1.12 X -aws-smithy-json@0.62.5 X +aws-smithy-http@0.64.0 X +aws-smithy-http-client@1.2.0 X +aws-smithy-json@0.62.7 X aws-smithy-observability@0.2.6 X +aws-smithy-observability@0.3.0 X aws-smithy-query@0.60.15 X -aws-smithy-runtime@1.10.3 X -aws-smithy-runtime-api@1.11.6 X -aws-smithy-types@1.4.7 X +aws-smithy-runtime@1.12.0 X +aws-smithy-runtime-api@1.13.0 X +aws-smithy-runtime-api-macros@1.1.0 X +aws-smithy-schema@0.1.0 X +aws-smithy-schema@0.2.0 X +aws-smithy-types@1.6.1 X aws-smithy-xml@0.60.15 X -aws-types@1.3.14 X +aws-types@1.3.16 X backon@1.6.0 X base64@0.22.1 X X base64-simd@0.8.0 X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X blake2@0.10.6 X X -blake3@1.8.3 X X X +blake3@1.8.5 X X X block-buffer@0.10.4 X X +block-buffer@0.12.1 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X bytes-utils@0.1.4 X X bzip2@0.6.1 X X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X cfg_aliases@0.2.1 X -chacha20@0.10.0 X X -chrono@0.4.44 X X +chacha20@0.10.1 X X +chrono@0.4.45 X X chrono-tz@0.10.4 X X cipher@0.4.4 X X -clap@4.6.0 X X +clap@4.6.1 X X clap_builder@4.6.0 X X -clap_derive@4.6.0 X X +clap_derive@4.6.1 X X clap_lex@1.1.0 X X clipboard-win@5.4.1 X -cmake@0.1.57 X X +cmake@0.1.58 X X +cmov@0.5.4 X X colorchoice@1.0.5 X X comfy-table@7.2.2 X -compression-codecs@0.4.37 X X -compression-core@0.4.31 X X +compression-codecs@0.4.38 X X +compression-core@0.4.32 X X concurrent-queue@2.5.0 X X +const-oid@0.10.2 X X const-random@0.1.18 X X const-random-macro@0.1.16 X X constant_time_eq@0.4.2 X X X @@ -109,15 +117,19 @@ core-foundation@0.10.1 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X cpufeatures@0.3.0 X X +crc@3.4.0 X X +crc-catalog@2.5.0 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X +crypto-common@0.2.2 X X csv@1.4.0 X X csv-core@0.1.13 X X ctr@0.9.2 X X +ctutils@0.4.2 X X darling@0.20.11 X darling@0.23.0 X darling_core@0.20.11 X @@ -125,53 +137,54 @@ darling_core@0.23.0 X darling_macro@0.20.11 X darling_macro@0.23.0 X dashmap@6.2.1 X -datafusion@53.1.0 X -datafusion-catalog@53.1.0 X -datafusion-catalog-listing@53.1.0 X -datafusion-cli@53.1.0 X -datafusion-common@53.1.0 X -datafusion-common-runtime@53.1.0 X -datafusion-datasource@53.1.0 X -datafusion-datasource-arrow@53.1.0 X -datafusion-datasource-avro@53.1.0 X -datafusion-datasource-csv@53.1.0 X -datafusion-datasource-json@53.1.0 X -datafusion-datasource-parquet@53.1.0 X -datafusion-doc@53.1.0 X -datafusion-execution@53.1.0 X -datafusion-expr@53.1.0 X -datafusion-expr-common@53.1.0 X -datafusion-functions@53.1.0 X -datafusion-functions-aggregate@53.1.0 X -datafusion-functions-aggregate-common@53.1.0 X -datafusion-functions-nested@53.1.0 X -datafusion-functions-table@53.1.0 X -datafusion-functions-window@53.1.0 X -datafusion-functions-window-common@53.1.0 X -datafusion-macros@53.1.0 X -datafusion-optimizer@53.1.0 X -datafusion-physical-expr@53.1.0 X -datafusion-physical-expr-adapter@53.1.0 X -datafusion-physical-expr-common@53.1.0 X -datafusion-physical-optimizer@53.1.0 X -datafusion-physical-plan@53.1.0 X -datafusion-pruning@53.1.0 X -datafusion-session@53.1.0 X -datafusion-sql@53.1.0 X +datafusion@54.0.0 X +datafusion-catalog@54.0.0 X +datafusion-catalog-listing@54.0.0 X +datafusion-cli@54.0.0 X +datafusion-common@54.0.0 X +datafusion-common-runtime@54.0.0 X +datafusion-datasource@54.0.0 X +datafusion-datasource-arrow@54.0.0 X +datafusion-datasource-avro@54.0.0 X +datafusion-datasource-csv@54.0.0 X +datafusion-datasource-json@54.0.0 X +datafusion-datasource-parquet@54.0.0 X +datafusion-doc@54.0.0 X +datafusion-execution@54.0.0 X +datafusion-expr@54.0.0 X +datafusion-expr-common@54.0.0 X +datafusion-functions@54.0.0 X +datafusion-functions-aggregate@54.0.0 X +datafusion-functions-aggregate-common@54.0.0 X +datafusion-functions-nested@54.0.0 X +datafusion-functions-table@54.0.0 X +datafusion-functions-window@54.0.0 X +datafusion-functions-window-common@54.0.0 X +datafusion-macros@54.0.0 X +datafusion-optimizer@54.0.0 X +datafusion-physical-expr@54.0.0 X +datafusion-physical-expr-adapter@54.0.0 X +datafusion-physical-expr-common@54.0.0 X +datafusion-physical-optimizer@54.0.0 X +datafusion-physical-plan@54.0.0 X +datafusion-pruning@54.0.0 X +datafusion-session@54.0.0 X +datafusion-sql@54.0.0 X deranged@0.5.8 X X derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X +digest@0.11.3 X X dirs@6.0.0 X X dirs-sys@0.5.0 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X dunce@1.0.5 X X X -either@1.15.0 X X -endian-type@0.1.2 X -env_filter@1.0.0 X X -env_logger@0.11.9 X X +either@1.16.0 X X +endian-type@0.2.0 X +env_filter@2.0.0 X X +env_logger@0.11.11 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X @@ -179,9 +192,8 @@ error-code@3.3.2 X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X -fd-lock@4.0.4 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X fixedbitset@0.5.7 X X flatbuffers@25.12.19 X @@ -190,7 +202,7 @@ fnv@1.0.7 X X foldhash@0.1.5 X foldhash@0.2.0 X form_urlencoded@1.2.2 X X -fs-err@3.3.0 X X +fs-err@3.3.1 X X fs_extra@1.3.0 X futures@0.3.32 X X futures-channel@0.3.32 X X @@ -204,30 +216,30 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X glob@0.3.3 X X gloo-timers@0.3.0 X X -h2@0.4.13 X +h2@0.4.15 X half@2.7.1 X X hashbrown@0.14.5 X X hashbrown@0.15.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X hex@0.4.3 X X -hmac@0.12.1 X X -home@0.5.11 X X +hmac@0.13.0 X X +home@0.5.12 X X http@0.2.12 X X -http@1.4.0 X X +http@1.4.2 X X http-body@0.4.6 X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X httpdate@1.0.3 X X -humantime@2.3.0 X X -hyper@1.8.1 X -hyper-rustls@0.27.7 X X X +humantime@2.4.0 X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X +hyper-rustls@0.27.9 X X X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X @@ -236,29 +248,28 @@ iceberg-catalog-rest@0.10.0 X iceberg-datafusion@0.10.0 X iceberg-playground@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X is_terminal_polyfill@1.70.2 X X itertools@0.13.0 X X itertools@0.14.0 X X itoa@1.0.18 X X -jiff@0.2.23 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jiff@0.2.31 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -266,31 +277,32 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libbz2-rs-sys@0.2.2 X -libc@0.2.183 X X -liblzma@0.4.6 X X -liblzma-sys@0.4.5 X X +libbz2-rs-sys@0.2.5 X +libc@0.2.186 X X +liblzma@0.4.7 X X +liblzma-sys@0.4.7 X X libm@0.2.16 X -libmimalloc-sys@0.1.44 X -libredox@0.1.14 X +libmimalloc-sys@0.1.49 X +libredox@0.1.18 X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X +log@0.4.33 X X +lz4_flex@0.13.1 X md-5@0.10.6 X X -memchr@2.8.0 X X -mimalloc@0.1.48 X +md-5@0.11.0 X X +memchr@2.8.2 X X +mimalloc@0.1.52 X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nibble_vec@0.1.0 X -nix@0.30.1 X +nix@0.31.3 X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X -num-conv@0.2.0 X X +num-conv@0.2.2 X X num-integer@0.1.46 X X num-traits@0.2.19 X X object@0.37.3 X X @@ -306,95 +318,99 @@ outref@0.5.2 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X percent-encoding@2.3.2 X X petgraph@0.8.3 X X phf@0.12.1 X phf_shared@0.12.1 X +pin-project@1.1.13 X X +pin-project-internal@1.1.13 X X pin-project-lite@0.2.17 X X pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X powerfmt@0.2.0 X X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X -psm@0.1.30 X X +psm@0.1.31 X X quad-rand@0.2.3 X quick-xml@0.39.4 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -radix_trie@0.2.1 X -rand@0.10.1 X X -rand@0.9.4 X X +radix_trie@0.3.0 X +rand@0.10.2 X X +rand@0.9.5 X X rand_chacha@0.9.0 X X -rand_core@0.10.0 X X +rand_core@0.10.1 X X rand_core@0.6.4 X X rand_core@0.9.5 X X recursive@0.1.1 X recursive-proc-macro-impl@0.1.1 X redox_syscall@0.5.18 X redox_users@0.5.2 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustls@0.23.37 X X X -rustls-native-certs@0.8.3 X X X -rustls-pki-types@1.14.0 X X +rustls@0.23.41 X X X +rustls-native-certs@0.8.4 X X X +rustls-pki-types@1.15.0 X X rustls-webpki@0.103.13 X -rustversion@1.0.22 X X -rustyline@17.0.2 X +rustversion@1.0.23 X X +rustyline@18.0.1 X ryu@1.0.23 X X same-file@1.0.6 X X schannel@0.1.29 X scopeguard@1.2.0 X X security-framework@3.7.0 X X security-framework-sys@2.17.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_spanned@0.6.9 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sha1@0.10.6 X X -sha2@0.10.9 X X +sha2@0.11.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X +shlex@2.0.1 X X signal-hook-registry@1.4.8 X X -simd-adler32@0.3.8 X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X -siphasher@1.0.2 X X +siphasher@1.0.3 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X -sqlparser@0.61.0 X +socket2@0.5.10 X X +socket2@0.6.4 X X +sqlparser@0.62.0 X sqlparser_derive@0.5.0 X stable_deref_trait@1.2.1 X X -stacker@0.1.23 X X +stacker@0.1.24 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X +strum_macros@0.28.0 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -403,11 +419,11 @@ thiserror@2.0.18 X X thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X -time@0.3.47 X X -time-core@0.1.8 X X +time@0.3.53 X X +time-core@0.1.9 X X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-rustls@0.26.4 X X tokio-stream@0.1.18 X @@ -417,7 +433,7 @@ toml_datetime@0.6.11 X X toml_edit@0.22.27 X X toml_write@0.1.2 X X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -431,10 +447,10 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X -unicode-segmentation@1.12.0 X X +unicode-segmentation@1.13.3 X X unicode-width@0.2.2 X X universal-hash@0.5.1 X X untrusted@0.9.0 X @@ -442,21 +458,20 @@ url@2.5.8 X X urlencoding@2.1.3 X utf8_iter@1.0.4 X X utf8parse@0.2.2 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X vsimd@0.8.0 X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X wasm-streams@0.4.2 X X -web-sys@0.3.91 X X +web-sys@0.3.103 X X web-time@1.1.0 X X winapi-util@0.1.11 X X windows-core@0.62.2 X X @@ -467,50 +482,39 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.59.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X winnow@0.7.15 X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X xmlparser@0.13.6 X X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/integrations/playground/src/catalog.rs b/crates/integrations/playground/src/catalog.rs index 66742ab893..e815cf720b 100644 --- a/crates/integrations/playground/src/catalog.rs +++ b/crates/integrations/playground/src/catalog.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::collections::HashMap; use std::path::Path; use std::sync::Arc; @@ -113,10 +112,6 @@ impl IcebergCatalogList { } impl CatalogProviderList for IcebergCatalogList { - fn as_any(&self) -> &dyn Any { - self - } - fn register_catalog( &self, _name: String, diff --git a/crates/sqllogictest/DEPENDENCIES.rust.tsv b/crates/sqllogictest/DEPENDENCIES.rust.tsv index d50ca9d2df..89a1e4cc75 100644 --- a/crates/sqllogictest/DEPENDENCIES.rust.tsv +++ b/crates/sqllogictest/DEPENDENCIES.rust.tsv @@ -6,89 +6,93 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X allocator-api2@0.2.21 X X android_system_properties@0.1.5 X X -anstream@0.6.21 X X anstream@1.0.0 X X anstyle@1.0.14 X X -anstyle-parse@0.2.7 X X anstyle-parse@1.0.0 X X anstyle-query@1.1.5 X X anstyle-wincon@3.0.11 X X anyhow@1.0.103 X X apache-avro@0.21.0 X -ar_archive_writer@0.5.1 X +ar_archive_writer@0.5.2 X array-init@2.1.0 X X arrayref@0.3.9 X -arrayvec@0.7.6 X X -arrow@58.1.0 X +arrayvec@0.7.8 X X +arrow@58.3.0 X arrow-arith@58.3.0 X arrow-array@58.3.0 X X +arrow-avro@58.3.0 X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X -arrow-csv@58.1.0 X +arrow-csv@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X -arrow-json@58.1.0 X +arrow-ipc@58.3.0 X +arrow-json@58.3.0 X arrow-ord@58.3.0 X -arrow-row@58.1.0 X +arrow-row@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X arrow-string@58.3.0 X as-any@0.3.2 X X -async-compression@0.4.41 X X +async-compression@0.4.42 X X async-lock@3.4.2 X X -async-recursion@1.1.1 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X +autocfg@1.5.1 X X backon@1.6.0 X base64@0.22.1 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X blake2@0.10.6 X X -blake3@1.8.3 X X X +blake3@1.8.5 X X X block-buffer@0.10.4 X X +block-buffer@0.12.1 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X bzip2@0.6.1 X X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X chrono-tz@0.10.4 X X cipher@0.4.4 X X -clap@4.6.0 X X +clap@4.6.1 X X clap_builder@4.6.0 X X -clap_derive@4.6.0 X X +clap_derive@4.6.1 X X clap_lex@1.1.0 X X colorchoice@1.0.5 X X comfy-table@7.2.2 X -compression-codecs@0.4.37 X X -compression-core@0.4.31 X X +compression-codecs@0.4.38 X X +compression-core@0.4.32 X X concurrent-queue@2.5.0 X X -console@0.16.3 X +console@0.16.4 X +const-oid@0.10.2 X X const-random@0.1.18 X X const-random-macro@0.1.16 X X constant_time_eq@0.4.2 X X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X +cpufeatures@0.3.0 X X +crc@3.4.0 X X +crc-catalog@2.5.0 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X +crypto-common@0.2.2 X X csv@1.4.0 X X csv-core@0.1.13 X X ctr@0.9.2 X X @@ -99,55 +103,54 @@ darling_core@0.23.0 X darling_macro@0.20.11 X darling_macro@0.23.0 X dashmap@6.2.1 X -datafusion@53.1.0 X -datafusion-catalog@53.1.0 X -datafusion-catalog-listing@53.1.0 X -datafusion-common@53.1.0 X -datafusion-common-runtime@53.1.0 X -datafusion-datasource@53.1.0 X -datafusion-datasource-arrow@53.1.0 X -datafusion-datasource-avro@53.1.0 X -datafusion-datasource-csv@53.1.0 X -datafusion-datasource-json@53.1.0 X -datafusion-datasource-parquet@53.1.0 X -datafusion-doc@53.1.0 X -datafusion-execution@53.1.0 X -datafusion-expr@53.1.0 X -datafusion-expr-common@53.1.0 X -datafusion-functions@53.1.0 X -datafusion-functions-aggregate@53.1.0 X -datafusion-functions-aggregate-common@53.1.0 X -datafusion-functions-nested@53.1.0 X -datafusion-functions-table@53.1.0 X -datafusion-functions-window@53.1.0 X -datafusion-functions-window-common@53.1.0 X -datafusion-macros@53.1.0 X -datafusion-optimizer@53.1.0 X -datafusion-physical-expr@53.1.0 X -datafusion-physical-expr-adapter@53.1.0 X -datafusion-physical-expr-common@53.1.0 X -datafusion-physical-optimizer@53.1.0 X -datafusion-physical-plan@53.1.0 X -datafusion-pruning@53.1.0 X -datafusion-session@53.1.0 X -datafusion-spark@53.1.0 X -datafusion-sql@53.1.0 X -datafusion-sqllogictest@53.1.0 X -datafusion-substrait@53.1.0 X +datafusion@54.0.0 X +datafusion-catalog@54.0.0 X +datafusion-catalog-listing@54.0.0 X +datafusion-common@54.0.0 X +datafusion-common-runtime@54.0.0 X +datafusion-datasource@54.0.0 X +datafusion-datasource-arrow@54.0.0 X +datafusion-datasource-avro@54.0.0 X +datafusion-datasource-csv@54.0.0 X +datafusion-datasource-json@54.0.0 X +datafusion-datasource-parquet@54.0.0 X +datafusion-doc@54.0.0 X +datafusion-execution@54.0.0 X +datafusion-expr@54.0.0 X +datafusion-expr-common@54.0.0 X +datafusion-functions@54.0.0 X +datafusion-functions-aggregate@54.0.0 X +datafusion-functions-aggregate-common@54.0.0 X +datafusion-functions-nested@54.0.0 X +datafusion-functions-table@54.0.0 X +datafusion-functions-window@54.0.0 X +datafusion-functions-window-common@54.0.0 X +datafusion-macros@54.0.0 X +datafusion-optimizer@54.0.0 X +datafusion-physical-expr@54.0.0 X +datafusion-physical-expr-adapter@54.0.0 X +datafusion-physical-expr-common@54.0.0 X +datafusion-physical-optimizer@54.0.0 X +datafusion-physical-plan@54.0.0 X +datafusion-pruning@54.0.0 X +datafusion-session@54.0.0 X +datafusion-spark@54.0.0 X +datafusion-sql@54.0.0 X +datafusion-sqllogictest@54.0.0 X derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X -displaydoc@0.2.5 X X +digest@0.11.3 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X -dyn-clone@1.0.20 X X educe@0.6.0 X -either@1.15.0 X X +either@1.16.0 X X encode_unicode@1.0.0 X X enum-ordinalize@4.4.1 X enum-ordinalize-derive@4.4.1 X -env_filter@1.0.0 X X -env_logger@0.11.9 X X +env_filter@2.0.0 X X +env_logger@0.11.11 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X @@ -155,8 +158,8 @@ escape8259@0.5.3 X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X fixedbitset@0.5.7 X X flatbuffers@25.12.19 X @@ -165,7 +168,7 @@ fnv@1.0.7 X X foldhash@0.1.5 X foldhash@0.2.0 X form_urlencoded@1.2.2 X X -fs-err@3.3.0 X X +fs-err@3.3.1 X X futures@0.3.32 X X futures-channel@0.3.32 X X futures-core@0.3.32 X X @@ -178,23 +181,23 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X glob@0.3.3 X X gloo-timers@0.3.0 X X half@2.7.1 X X hashbrown@0.14.5 X X hashbrown@0.15.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X hex@0.4.3 X X -http@1.4.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -humantime@2.3.0 X X -hyper@1.8.1 X +humantime@2.4.0 X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X @@ -202,30 +205,29 @@ iceberg@0.10.0 X iceberg-datafusion@0.10.0 X iceberg-sqllogictest@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X -indexmap@2.13.0 X X -indicatif@0.18.4 X +idna_adapter@1.2.2 X X +indexmap@2.14.0 X X +indicatif@0.18.6 X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X is_terminal_polyfill@1.70.2 X X itertools@0.13.0 X X itertools@0.14.0 X X itoa@1.0.18 X X -jiff@0.2.23 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jiff@0.2.31 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -233,26 +235,26 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libbz2-rs-sys@0.2.2 X -libc@0.2.183 X X -liblzma@0.4.6 X X -liblzma-sys@0.4.5 X X +libbz2-rs-sys@0.2.5 X +libc@0.2.186 X X +liblzma@0.4.7 X X +liblzma-sys@0.4.7 X X libm@0.2.16 X libtest-mimic@0.8.2 X X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X +log@0.4.33 X X +lz4_flex@0.13.1 X md-5@0.10.6 X X -memchr@2.8.0 X X +md-5@0.11.0 X X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X -multimap@0.10.1 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X num-integer@0.1.46 X X num-traits@0.2.19 X X @@ -267,36 +269,30 @@ owo-colors@4.3.0 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X -pbjson@0.8.0 X -pbjson-build@0.8.0 X -pbjson-types@0.8.0 X percent-encoding@2.3.2 X X petgraph@0.8.3 X X phf@0.12.1 X phf_shared@0.12.1 X +pin-project@1.1.13 X X +pin-project-internal@1.1.13 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X -prost@0.14.3 X -prost-build@0.14.3 X -prost-derive@0.14.3 X -prost-types@0.14.3 X -psm@0.1.30 X X +psm@0.1.31 X X quad-rand@0.2.3 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.8.5 X X -rand@0.9.4 X X +rand@0.8.6 X X +rand@0.9.5 X X rand_chacha@0.3.1 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X @@ -304,62 +300,57 @@ rand_core@0.9.5 X X recursive@0.1.1 X recursive-proc-macro-impl@0.1.1 X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X -regress@0.10.5 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X same-file@1.0.6 X X -schemars@0.8.22 X -schemars_derive@0.8.22 X scopeguard@1.2.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_derive_internals@0.29.1 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_spanned@0.6.9 X X -serde_tokenstream@0.2.3 X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X -serde_yaml@0.9.34+deprecated X X -sha1@0.10.6 X X -sha2@0.10.9 X X +sha1@0.11.0 X X +sha2@0.11.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X -simd-adler32@0.3.8 X +shlex@2.0.1 X X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X similar@2.7.0 X -siphasher@1.0.2 X X +siphasher@1.0.3 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X sqllogictest@0.29.1 X X -sqlparser@0.61.0 X +sqlparser@0.62.0 X sqlparser_derive@0.5.0 X stable_deref_trait@1.2.1 X X -stacker@0.1.23 X X +stacker@0.1.24 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X +strum_macros@0.28.0 X subst@0.3.8 X X -substrait@0.62.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -369,8 +360,8 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tokio-stream@0.1.18 X tokio-util@0.7.18 X @@ -379,7 +370,7 @@ toml_datetime@0.6.11 X X toml_edit@0.22.27 X X toml_write@0.1.2 X X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -393,35 +384,30 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X -typify@0.5.0 X -typify-impl@0.5.0 X -typify-macro@0.5.0 X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X -unicode-segmentation@1.12.0 X X +unicode-segmentation@1.13.3 X X unicode-width@0.1.14 X X unicode-width@0.2.2 X X unit-prefix@0.5.2 X universal-hash@0.5.1 X X -unsafe-libyaml@0.2.11 X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X utf8parse@0.2.2 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -web-sys@0.3.91 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +web-sys@0.3.103 X X web-time@1.1.0 X X winapi-util@0.1.11 X X windows-core@0.62.2 X X @@ -432,49 +418,38 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.59.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X winnow@0.7.15 X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/storage/opendal/DEPENDENCIES.rust.tsv b/crates/storage/opendal/DEPENDENCIES.rust.tsv index 3a960f193a..bdd3fb2cdd 100644 --- a/crates/storage/opendal/DEPENDENCIES.rust.tsv +++ b/crates/storage/opendal/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anstream@1.0.0 X X anstyle@1.0.14 X X @@ -18,13 +18,13 @@ apache-avro@0.21.0 X approx@0.5.1 X array-init@2.1.0 X X arrayref@0.3.9 X -arrayvec@0.7.6 X X +arrayvec@0.7.8 X X arrow-arith@58.3.0 X arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -34,42 +34,43 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X -aws-lc-rs@1.16.2 X X -aws-lc-sys@0.39.0 X X X X X +autocfg@1.5.1 X X +aws-lc-rs@1.17.1 X X +aws-lc-sys@0.42.0 X X X X X backon@1.6.0 X base64@0.22.1 X X base64ct@1.8.3 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X -blake3@1.8.3 X X X +bitflags@2.13.0 X X +blake3@1.8.5 X X X block-buffer@0.10.4 X X -block-buffer@0.12.0 X X +block-buffer@0.12.1 X X block-padding@0.3.3 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bstr@1.12.1 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bstr@1.12.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X cbc@0.1.2 X X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@0.1.10 X X cfg-if@1.0.4 X X -chacha20@0.10.0 X X -chrono@0.4.44 X X +chacha20@0.10.1 X X +chrono@0.4.45 X X cipher@0.4.4 X X -clap@4.6.0 X X +clap@4.6.1 X X clap_builder@4.6.0 X X -clap_derive@4.6.0 X X +clap_derive@4.6.1 X X clap_lex@1.1.0 X X -cmake@0.1.57 X X +cmake@0.1.58 X X +cmov@0.5.4 X X colorchoice@1.0.5 X X colored@3.1.1 X combine@4.6.7 X @@ -89,18 +90,19 @@ cpufeatures@0.2.17 X X cpufeatures@0.3.0 X X crc32c@0.6.8 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X crypto-common@0.2.2 X X csv@1.4.0 X X csv-core@0.1.13 X X ctor@0.6.3 X X -ctor@1.0.7 X X +ctor@1.0.8 X X ctor-proc-macro@0.0.7 X X ctr@0.9.2 X X +ctutils@0.4.2 X X darling@0.20.11 X darling@0.23.0 X darling_core@0.20.11 X @@ -116,21 +118,21 @@ digest@0.10.7 X X digest@0.11.3 X X dirs@6.0.0 X X dirs-sys@0.5.0 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X dlv-list@0.5.2 X X dtor@0.1.1 X X dtor-proc-macro@0.0.6 X X dunce@1.0.5 X X X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X errno@0.3.14 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -150,63 +152,61 @@ gearhash@0.1.3 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X git-version@0.3.9 X git-version-macro@0.3.9 X gloo-timers@0.3.0 X X half@2.7.1 X X hashbrown@0.14.5 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heapify@0.2.0 X X heck@0.5.0 X X hex@0.4.3 X X hf-xet@1.5.2 X hmac@0.12.1 X X -http@1.4.0 X X +hmac@0.13.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -humantime@2.3.0 X X -hybrid-array@0.4.12 X X -hyper@1.8.1 X -hyper-rustls@0.27.7 X X X +humantime@2.4.0 X X +hybrid-array@0.4.13 X X +hyper@1.10.1 X +hyper-rustls@0.27.9 X X X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X iceberg@0.10.0 X iceberg-storage-opendal@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X +idna_adapter@1.2.2 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X is_terminal_polyfill@1.70.2 X X itertools@0.13.0 X X itertools@0.14.0 X X itoa@1.0.18 X X -jiff@0.2.23 X X -jiff-tzdb@0.1.6 X X +jiff@0.2.31 X X +jiff-tzdb@0.1.7 X X jiff-tzdb-platform@0.1.3 X X jni@0.22.4 X X jni-macros@0.22.4 X X jni-sys@0.4.1 X X jni-sys-macros@0.4.1 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X -jsonwebtoken@10.3.0 X +jobserver@0.1.35 X X +js-sys@0.3.103 X X konst@0.4.3 X konst_proc_macros@0.4.1 X lazy_static@1.5.0 X X @@ -216,33 +216,33 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -libredox@0.1.14 X -link-section@0.18.1 X X +libredox@0.1.18 X +link-section@0.19.0 X X linktime-proc-macro@0.2.0 X X linux-raw-sys@0.12.1 X X X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X +log@0.4.33 X X +lz4_flex@0.13.1 X matchers@0.2.0 X md-5@0.11.0 X X -mea@0.6.3 X -memchr@2.8.0 X X +mea@0.6.4 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X more-asserts@0.3.1 X X X X murmur3@0.5.2 X X ntapi@0.4.3 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-bigint-dig@0.8.6 X X num-complex@0.4.6 X X -num-conv@0.2.0 X X +num-conv@0.2.2 X X num-integer@0.1.46 X X -num-iter@0.1.45 X X +num-iter@0.1.46 X X num-traits@0.2.19 X X objc2-core-foundation@0.3.2 X X X objc2-io-kit@0.3.2 X X X @@ -273,70 +273,70 @@ os_str_bytes@6.6.1 X X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X pbkdf2@0.12.2 X X pem@3.0.6 X pem-rfc7468@0.7.0 X X percent-encoding@2.3.2 X X -pin-project@1.1.11 X X -pin-project-internal@1.1.11 X X +pin-project@1.1.13 X X +pin-project-internal@1.1.13 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X pkcs1@0.7.5 X X pkcs5@0.7.1 X X pkcs8@0.10.2 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -portable-atomic-util@0.2.6 X X -potential_utf@0.1.4 X +portable-atomic-util@0.2.7 X X +potential_utf@0.1.5 X powerfmt@0.2.0 X X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X quick-xml@0.39.4 X -quote@1.0.45 X X +quick-xml@0.40.1 X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.10.1 X X -rand@0.8.5 X X -rand@0.9.4 X X +rand@0.10.2 X X +rand@0.8.6 X X +rand@0.9.5 X X rand_chacha@0.3.1 X X rand_chacha@0.9.0 X X -rand_core@0.10.0 X X +rand_core@0.10.1 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redb@3.1.3 X X redox_syscall@0.5.18 X redox_users@0.5.2 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X -reqsign-aliyun-oss@3.0.0 X -reqsign-aws-v4@3.0.0 X -reqsign-azure-storage@3.0.0 X -reqsign-core@3.0.0 X -reqsign-file-read-tokio@3.0.0 X -reqsign-google@3.0.0 X +regex-syntax@0.8.11 X X +reqsign-aliyun-oss@3.1.0 X +reqsign-aws-v4@3.0.1 X +reqsign-azure-storage@3.0.1 X +reqsign-core@3.0.1 X +reqsign-file-read-tokio@3.0.1 X +reqsign-google@3.0.1 X reqwest@0.12.28 X X -reqwest@0.13.3 X X +reqwest@0.13.4 X X reqwest-middleware@0.5.2 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rsa@0.9.10 X X rust-ini@0.21.3 X rustc_version@0.4.1 X X rustix@1.1.4 X X X -rustls@0.23.37 X X X -rustls-native-certs@0.8.3 X X X -rustls-pki-types@1.14.0 X X +rustls@0.23.41 X X X +rustls-native-certs@0.8.4 X X X +rustls-pki-types@1.15.0 X X rustls-platform-verifier@0.7.0 X X rustls-platform-verifier-android@0.1.1 X X rustls-webpki@0.103.13 X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X safe-transmute@0.11.3 X salsa20@0.10.2 X X @@ -346,33 +346,34 @@ scopeguard@1.2.0 X X scrypt@0.11.0 X X security-framework@3.7.0 X X security-framework-sys@2.17.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X -sha1@0.10.6 X X +sha1@0.11.0 X X sha2@0.10.9 X X +sha2@0.11.0 X X sha2-asm@0.6.4 X sharded-slab@0.1.7 X shellexpand@3.1.2 X X -shlex@1.3.0 X X +shlex@2.0.1 X X signature@2.2.0 X X -simd-adler32@0.3.8 X +simd-adler32@0.3.9 X simd_cesu8@1.1.1 X X simdutf8@0.1.5 X X -simple_asn1@0.6.4 X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X spin@0.9.8 X spki@0.7.3 X X stable_deref_trait@1.2.1 X X @@ -383,7 +384,7 @@ strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X symlink@0.1.0 X X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X sysinfo@0.38.4 X @@ -395,18 +396,17 @@ thiserror@2.0.18 X X thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X -time@0.3.47 X X -time-core@0.1.8 X X -time-macros@0.2.27 X X +time@0.3.53 X X +time-core@0.1.9 X X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X -tokio-retry@0.3.1 X +tokio-retry@0.3.2 X tokio-rustls@0.26.4 X X tokio-util@0.7.18 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -422,36 +422,34 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X typewit@1.15.2 X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X -untrusted@0.7.1 X untrusted@0.9.0 X url@2.5.8 X X urlencoding@2.1.3 X utf8_iter@1.0.4 X X utf8parse@0.2.2 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X walkdir@2.5.0 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X wasi@0.14.7+wasi-0.2.4 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X +wasip2@1.0.4+wasi-0.2.12 X X X wasite@1.0.2 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X wasm-streams@0.5.0 X X -web-sys@0.3.91 X X +web-sys@0.3.103 X X web-time@1.1.0 X X -webpki-root-certs@1.0.7 X -whoami@2.1.1 X X X +webpki-root-certs@1.0.8 X +whoami@2.1.2 X X X winapi@0.3.9 X X winapi-i686-pc-windows-gnu@0.4.0 X X winapi-util@0.1.11 X X @@ -469,53 +467,43 @@ windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.48.0 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.48.5 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows-threading@0.2.1 X X windows_aarch64_gnullvm@0.48.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.48.5 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.48.5 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.48.5 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.48.5 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.48.5 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.48.5 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X xattr@1.6.1 X X xet-client@1.5.2 X xet-core-structures@1.5.2 X xet-data@1.5.2 X xet-runtime@1.5.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X diff --git a/crates/storage/opendal/LICENSE b/crates/storage/opendal/LICENSE new file mode 120000 index 0000000000..5853aaea53 --- /dev/null +++ b/crates/storage/opendal/LICENSE @@ -0,0 +1 @@ +../../../LICENSE \ No newline at end of file diff --git a/crates/storage/opendal/NOTICE b/crates/storage/opendal/NOTICE new file mode 120000 index 0000000000..295f6bdb3a --- /dev/null +++ b/crates/storage/opendal/NOTICE @@ -0,0 +1 @@ +../../../NOTICE \ No newline at end of file diff --git a/crates/test_utils/DEPENDENCIES.rust.tsv b/crates/test_utils/DEPENDENCIES.rust.tsv index 1381017ddc..576da105a9 100644 --- a/crates/test_utils/DEPENDENCIES.rust.tsv +++ b/crates/test_utils/DEPENDENCIES.rust.tsv @@ -6,7 +6,7 @@ aes-gcm@0.10.3 X X ahash@0.8.12 X X aho-corasick@1.1.4 X X alloc-no-stdlib@2.0.4 X -alloc-stdlib@0.2.2 X +alloc-stdlib@0.2.4 X android_system_properties@0.1.5 X X anyhow@1.0.103 X X apache-avro@0.21.0 X @@ -16,7 +16,7 @@ arrow-array@58.3.0 X X arrow-buffer@58.3.0 X arrow-cast@58.3.0 X arrow-data@58.3.0 X -arrow-ipc@58.1.0 X +arrow-ipc@58.3.0 X arrow-ord@58.3.0 X arrow-schema@58.3.0 X arrow-select@58.3.0 X @@ -26,26 +26,26 @@ async-lock@3.4.2 X X async-trait@0.1.89 X X atoi@2.0.0 X atomic-waker@1.1.2 X X -autocfg@1.5.0 X X +autocfg@1.5.1 X X backon@1.6.0 X base64@0.22.1 X X bigdecimal@0.4.10 X X bimap@0.6.3 X X -bitflags@2.11.0 X X +bitflags@2.13.0 X X block-buffer@0.10.4 X X bnum@0.12.1 X X -bon@3.9.1 X X -bon-macros@3.9.1 X X -brotli@8.0.2 X X -brotli-decompressor@5.0.0 X X -bumpalo@3.20.2 X X +bon@3.9.3 X X +bon-macros@3.9.3 X X +brotli@8.0.4 X X +brotli-decompressor@5.0.3 X X +bumpalo@3.20.3 X X bytemuck@1.25.0 X X X bytemuck_derive@1.10.2 X X X byteorder@1.5.0 X X bytes@1.12.0 X -cc@1.2.57 X X +cc@1.2.66 X X cfg-if@1.0.4 X X -chrono@0.4.44 X X +chrono@0.4.45 X X cipher@0.4.4 X X concurrent-queue@2.5.0 X X const-random@0.1.18 X X @@ -53,9 +53,9 @@ const-random-macro@0.1.16 X X core-foundation-sys@0.8.7 X X cpufeatures@0.2.17 X X crc32fast@1.5.0 X X -crossbeam-channel@0.5.15 X X -crossbeam-epoch@0.9.18 X X -crossbeam-utils@0.8.21 X X +crossbeam-channel@0.5.16 X X +crossbeam-epoch@0.9.20 X X +crossbeam-utils@0.8.22 X X crunchy@0.2.4 X crypto-common@0.1.7 X X ctr@0.9.2 X X @@ -69,16 +69,16 @@ derive_builder@0.20.2 X X derive_builder_core@0.20.2 X X derive_builder_macro@0.20.2 X X digest@0.10.7 X X -displaydoc@0.2.5 X X +displaydoc@0.2.6 X X dissimilar@1.0.11 X -either@1.15.0 X X +either@1.16.0 X X equivalent@1.0.2 X X erased-serde@0.4.10 X X event-listener@5.4.1 X X event-listener-strategy@0.5.4 X X expect-test@1.5.1 X X -fastnum@0.7.4 X X -fastrand@2.3.0 X X +fastnum@0.7.5 X X +fastrand@2.4.1 X X find-msvc-tools@0.1.9 X X flatbuffers@25.12.19 X flate2@1.1.9 X X @@ -96,42 +96,40 @@ futures-util@0.3.32 X X generic-array@0.14.7 X getrandom@0.2.17 X X getrandom@0.3.4 X X -getrandom@0.4.2 X X +getrandom@0.4.3 X X ghash@0.5.1 X X gloo-timers@0.3.0 X X half@2.7.1 X X -hashbrown@0.16.1 X X hashbrown@0.17.1 X X heck@0.5.0 X X -http@1.4.0 X X +http@1.4.2 X X http-body@1.0.1 X http-body-util@0.1.3 X httparse@1.10.1 X X -hyper@1.8.1 X +hyper@1.10.1 X hyper-util@0.1.20 X iana-time-zone@0.1.65 X X iana-time-zone-haiku@0.1.2 X X iceberg@0.10.0 X iceberg_test_utils@0.10.0 X -icu_collections@2.1.1 X -icu_locale_core@2.1.1 X -icu_normalizer@2.1.1 X -icu_normalizer_data@2.1.1 X -icu_properties@2.1.2 X -icu_properties_data@2.1.2 X -icu_provider@2.1.1 X +icu_collections@2.2.0 X +icu_locale_core@2.2.0 X +icu_normalizer@2.2.0 X +icu_normalizer_data@2.2.0 X +icu_properties@2.2.0 X +icu_properties_data@2.2.0 X +icu_provider@2.2.0 X ident_case@1.0.1 X X idna@1.1.0 X X -idna_adapter@1.2.1 X X +idna_adapter@1.2.2 X X inout@0.1.4 X X integer-encoding@3.0.4 X -inventory@0.3.22 X X +inventory@0.3.24 X X ipnet@2.12.0 X X -iri-string@0.7.11 X X itertools@0.13.0 X X itoa@1.0.18 X X -jobserver@0.1.34 X X -js-sys@0.3.91 X X +jobserver@0.1.35 X X +js-sys@0.3.103 X X lazy_static@1.5.0 X X lexical-core@1.0.6 X X lexical-parse-float@1.0.6 X X @@ -139,19 +137,19 @@ lexical-parse-integer@1.0.6 X X lexical-util@1.0.7 X X lexical-write-float@1.0.6 X X lexical-write-integer@1.0.6 X X -libc@0.2.183 X X +libc@0.2.186 X X libm@0.2.16 X -litemap@0.8.1 X +litemap@0.8.2 X lock_api@0.4.14 X X -log@0.4.29 X X -lz4_flex@0.13.0 X -memchr@2.8.0 X X +log@0.4.33 X X +lz4_flex@0.13.1 X +memchr@2.8.2 X X miniz_oxide@0.8.9 X X X -mio@1.2.0 X +mio@1.2.1 X moka@0.12.15 X X murmur3@0.5.2 X X nu-ansi-term@0.50.3 X -num-bigint@0.4.6 X X +num-bigint@0.4.8 X X num-complex@0.4.6 X X num-integer@0.1.46 X X num-traits@0.2.19 X X @@ -162,64 +160,64 @@ ordered-float@4.6.0 X parking@2.2.1 X X parking_lot@0.12.5 X X parking_lot_core@0.9.12 X X -parquet@58.1.0 X +parquet@58.3.0 X paste@1.0.15 X X percent-encoding@2.3.2 X X pin-project-lite@0.2.17 X X -pin-utils@0.1.0 X X -pkg-config@0.3.32 X X +pkg-config@0.3.33 X X polyval@0.6.2 X X portable-atomic@1.13.1 X X -potential_utf@0.1.4 X +potential_utf@0.1.5 X ppv-lite86@0.2.21 X X prettyplease@0.2.37 X X proc-macro2@1.0.106 X X quad-rand@0.2.3 X -quote@1.0.45 X X +quote@1.0.46 X X r-efi@5.3.0 X X X r-efi@6.0.0 X X X -rand@0.9.4 X X +rand@0.9.5 X X rand_chacha@0.9.0 X X rand_core@0.6.4 X X rand_core@0.9.5 X X redox_syscall@0.5.18 X -regex@1.12.3 X X +regex@1.12.4 X X regex-automata@0.4.14 X X regex-lite@0.1.9 X X -regex-syntax@0.8.10 X X +regex-syntax@0.8.11 X X reqwest@0.12.28 X X ring@0.17.14 X X -roaring@0.11.3 X X +roaring@0.11.4 X X rustc_version@0.4.1 X X -rustversion@1.0.22 X X +rustversion@1.0.23 X X ryu@1.0.23 X X scopeguard@1.2.0 X X -semver@1.0.27 X X +semver@1.0.28 X X seq-macro@0.3.6 X X serde@1.0.228 X X serde-big-array@0.5.1 X X serde_bytes@0.11.19 X X serde_core@1.0.228 X X serde_derive@1.0.228 X X -serde_json@1.0.149 X X +serde_json@1.0.150 X X serde_repr@0.1.20 X X serde_urlencoded@0.7.1 X X serde_with@3.21.0 X X serde_with_macros@3.21.0 X X sharded-slab@0.1.7 X -shlex@1.3.0 X X -simd-adler32@0.3.8 X +shlex@2.0.1 X X +simd-adler32@0.3.9 X simdutf8@0.1.5 X X slab@0.4.12 X -smallvec@1.15.1 X X +smallvec@1.15.2 X X snap@1.1.1 X -socket2@0.6.3 X X +socket2@0.5.10 X X +socket2@0.6.4 X X stable_deref_trait@1.2.1 X X strsim@0.11.1 X strum@0.27.2 X strum_macros@0.27.2 X subtle@2.6.1 X -syn@2.0.117 X X +syn@2.0.118 X X sync_wrapper@1.0.2 X synstructure@0.13.2 X tagptr@0.2.0 X X @@ -228,11 +226,11 @@ thiserror-impl@2.0.18 X X thread_local@1.1.9 X X thrift@0.17.0 X tiny-keccak@2.0.2 X -tinystr@0.8.2 X -tokio@1.52.1 X +tinystr@0.8.3 X +tokio@1.52.3 X tokio-macros@2.7.0 X tower@0.5.3 X -tower-http@0.6.8 X +tower-http@0.6.11 X tower-layer@0.3.3 X tower-service@0.3.3 X tracing@0.1.44 X @@ -246,25 +244,24 @@ typed-builder@0.20.1 X X typed-builder-macro@0.20.1 X X typeid@1.0.3 X X typenum@1.20.1 X X -typetag@0.2.21 X X -typetag-impl@0.2.21 X X +typetag@0.2.22 X X +typetag-impl@0.2.22 X X unicode-ident@1.0.24 X X X universal-hash@0.5.1 X X untrusted@0.9.0 X url@2.5.8 X X utf8_iter@1.0.4 X X -uuid@1.23.0 X X +uuid@1.23.4 X X version_check@0.9.5 X X want@0.3.1 X wasi@0.11.1+wasi-snapshot-preview1 X X X -wasip2@1.0.2+wasi-0.2.9 X X X -wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 X X X -wasm-bindgen@0.2.114 X X -wasm-bindgen-futures@0.4.64 X X -wasm-bindgen-macro@0.2.114 X X -wasm-bindgen-macro-support@0.2.114 X X -wasm-bindgen-shared@0.2.114 X X -web-sys@0.3.91 X X +wasip2@1.0.4+wasi-0.2.12 X X X +wasm-bindgen@0.2.126 X X +wasm-bindgen-futures@0.4.76 X X +wasm-bindgen-macro@0.2.126 X X +wasm-bindgen-macro-support@0.2.126 X X +wasm-bindgen-shared@0.2.126 X X +web-sys@0.3.103 X X windows-core@0.62.2 X X windows-implement@0.60.2 X X windows-interface@0.59.3 X X @@ -272,39 +269,29 @@ windows-link@0.2.1 X X windows-result@0.4.1 X X windows-strings@0.5.1 X X windows-sys@0.52.0 X X -windows-sys@0.60.2 X X windows-sys@0.61.2 X X windows-targets@0.52.6 X X -windows-targets@0.53.5 X X windows_aarch64_gnullvm@0.52.6 X X -windows_aarch64_gnullvm@0.53.1 X X windows_aarch64_msvc@0.52.6 X X -windows_aarch64_msvc@0.53.1 X X windows_i686_gnu@0.52.6 X X -windows_i686_gnu@0.53.1 X X windows_i686_gnullvm@0.52.6 X X -windows_i686_gnullvm@0.53.1 X X windows_i686_msvc@0.52.6 X X -windows_i686_msvc@0.53.1 X X windows_x86_64_gnu@0.52.6 X X -windows_x86_64_gnu@0.53.1 X X windows_x86_64_gnullvm@0.52.6 X X -windows_x86_64_gnullvm@0.53.1 X X windows_x86_64_msvc@0.52.6 X X -windows_x86_64_msvc@0.53.1 X X -wit-bindgen@0.51.0 X X X -writeable@0.6.2 X -yoke@0.8.1 X -yoke-derive@0.8.1 X -zerocopy@0.8.47 X X X -zerocopy-derive@0.8.47 X X X -zerofrom@0.1.6 X -zerofrom-derive@0.1.6 X +wit-bindgen@0.57.1 X X X +writeable@0.6.3 X +yoke@0.8.3 X +yoke-derive@0.8.2 X +zerocopy@0.8.53 X X X +zerocopy-derive@0.8.53 X X X +zerofrom@0.1.8 X +zerofrom-derive@0.1.7 X zeroize@1.9.0 X X -zerotrie@0.2.3 X -zerovec@0.11.5 X -zerovec-derive@0.11.2 X -zlib-rs@0.6.3 X +zerotrie@0.2.4 X +zerovec@0.11.6 X +zerovec-derive@0.11.3 X +zlib-rs@0.6.5 X zmij@1.0.21 X zstd@0.13.3 X zstd-safe@7.2.4 X X