This is an automated email from the ASF dual-hosted git repository.

kevinjqliu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new 4a70ddeaf5 Site: Add blog post for iceberg-rust 0.10.0 (#17032)
4a70ddeaf5 is described below

commit 4a70ddeaf55cfebab01deaf63f15419675258d5f
Author: Daniel Carl Jones <[email protected]>
AuthorDate: Wed Jul 29 16:44:39 2026 +0200

    Site: Add blog post for iceberg-rust 0.10.0 (#17032)
    
    
    Co-authored-by: Shawn Chang <[email protected]>
    
    ---------
    
    Co-authored-by: Kevin Liu <[email protected]>
    Co-authored-by: Shawn Chang <[email protected]>
---
 .../2026-07-21-iceberg-rust-0.10.0-release.md      | 152 +++++++++++++++++++++
 1 file changed, 152 insertions(+)

diff --git a/site/docs/blog/posts/2026-07-21-iceberg-rust-0.10.0-release.md 
b/site/docs/blog/posts/2026-07-21-iceberg-rust-0.10.0-release.md
new file mode 100644
index 0000000000..0391f65c56
--- /dev/null
+++ b/site/docs/blog/posts/2026-07-21-iceberg-rust-0.10.0-release.md
@@ -0,0 +1,152 @@
+---
+date: 2026-07-21
+title: Apache Iceberg Rust 0.10.0 Release
+slug: apache-iceberg-rust-0.10.0-release
+authors:
+  - iceberg-pmc
+categories:
+  - release
+---
+
+<!--
+ - 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.
+ -->
+
+The Apache Iceberg community is pleased to announce version 0.10.0 of 
[iceberg-rust](https://github.com/apache/iceberg-rust).
+
+This release covers development work from early March through early July 2026 
and is the result of merging **254 PRs** from **40 contributors**. See the 
[changelog] for the complete list of changes.
+
+[changelog]: https://github.com/apache/iceberg-rust/releases/tag/v0.10.0
+
+`iceberg-rust` is a native Rust implementation of the Apache Iceberg 
specification, providing high-performance libraries for reading, writing, and 
managing Iceberg tables in Rust applications and through Python bindings 
(`pyiceberg-core`).
+
+<!-- more -->
+
+## Release Highlights
+
+There have been plenty of contributions across the `iceberg-rust` library; 
here's a highlight of a few.
+
+### Schema Evolution
+
+This release adds the [`update_schema` 
action](https://github.com/apache/iceberg-rust/pull/2120), enabling column 
addition and removal.
+
+### Snapshot Expiration
+
+A new `ExpireSnapshotsAction` 
([#2591](https://github.com/apache/iceberg-rust/pull/2591), 
[#2664](https://github.com/apache/iceberg-rust/pull/2664), 
[#2667](https://github.com/apache/iceberg-rust/pull/2667)) provides a 
high-level API for expiring old snapshots, respecting `history.expire.*` table 
properties and cleaning up associated statistics file metadata.
+
+### Configurable Tokio runtime
+
+A [custom tokio `Runtime`](https://github.com/apache/iceberg-rust/pull/2308) 
can now be provided when initializing catalogs.
+This allows for injecting a customized Tokio runtime into the session.
+For example, it is now possible to configure the thread stack size or maximum 
number of threads programatically.
+
+### Writer Improvements
+
+- **Content-defined chunking** 
([#2375](https://github.com/apache/iceberg-rust/pull/2375), 
[#2561](https://github.com/apache/iceberg-rust/pull/2561)): content-defined 
chunking table properties are now respected for optimizing Parquet file 
boundaries
+- **[Purge table support](https://github.com/apache/iceberg-rust/pull/2232)**: 
Catalogs now offer a `purge_table` method, deleting both metadata and data files
+
+### Enhanced DataFusion Integration
+
+- **[EXPLAIN shows pushed-down 
limits](https://github.com/apache/iceberg-rust/pull/2360)**: `IcebergTableScan` 
now displays limit pushdown in EXPLAIN output for query debugging
+- **[IsNaN predicate 
pushdown](https://github.com/apache/iceberg-rust/pull/2592)**: NaN-preserving 
numeric expressions are now pushed into scans
+
+### Reader and Scan Improvements
+
+- **[Scan I/O metrics](https://github.com/apache/iceberg-rust/pull/2349)**: 
`ArrowReader` now exposes bytes read during scans
+- **[FixedBinary(N) 
support](https://github.com/apache/iceberg-rust/pull/2348)**: Added support for 
fixed-length binary types
+- **[Snappy codec for 
Avro](https://github.com/apache/iceberg-rust/pull/2573)**: Avro files 
compressed with Snappy can now be read
+
+### Table Encryption (Foundational)
+
+Significant groundwork has been laid toward Iceberg's table encryption 
specification. Writes to encrypted tables are [explicitly 
blocked](https://github.com/apache/iceberg-rust/pull/2626) until the full write 
path is complete. End-to-end read and write support for encrypted tables is 
expected in a future release. See the [table encryption 
RFC](https://github.com/apache/iceberg-rust/pull/2183) for the full design.
+
+### Storage Improvements
+
+#### New Storage Backend - HuggingFace Hub
+
+The [HuggingFace Hub storage 
backend](https://github.com/apache/iceberg-rust/pull/2375) was introduced, 
enabling direct access to Iceberg tables hosted on HuggingFace datasets.
+
+#### Other improvements
+
+- **[`delete_stream` on Storage 
trait](https://github.com/apache/iceberg-rust/pull/2216)**: Batch delete 
operations for efficient cleanup
+- **[OpenDAL resolving 
storage](https://github.com/apache/iceberg-rust/pull/2231)**: Automatically 
resolves the appropriate storage backend based on file path scheme
+- **[Timeout layer for 
OpenDAL](https://github.com/apache/iceberg-rust/pull/2455)**: Added 
`TimeoutLayer` inside `RetryLayer` to prevent indefinite hangs
+- **[S3 virtual-host-style 
addressing](https://github.com/apache/iceberg-rust/pull/2330)**: Default to 
virtual-host-style S3 addressing for broader compatibility
+
+## Bug Fixes
+
+Notable correctness fixes or other validation improvements in this release:
+
+- **[INT96 timestamp 
values](https://github.com/apache/iceberg-rust/pull/2301)**: Fixed incorrect 
Parquet INT96 timestamp interpretation
+- **[Nested type column 
indices](https://github.com/apache/iceberg-rust/pull/2307)**: Fixed 
`build_fallback_field_id_map` producing incorrect indices for schemas with 
nested types
+- **[Delete-only manifests in 
FastAppend](https://github.com/apache/iceberg-rust/pull/2545)**: Preserved 
delete-only manifests that were incorrectly dropped
+- **[DeleteFileIndex lost 
wakeup](https://github.com/apache/iceberg-rust/pull/2696)**: Fixed a hang 
caused by a lost-wakeup race in `get_deletes_for_data_file`
+- **[Row group byte range 
filtering](https://github.com/apache/iceberg-rust/pull/2615)**: Fixed row 
duplication for sub-row-group file splits
+- **[Cross-engine decimal 
compatibility](https://github.com/apache/iceberg-rust/pull/2538)**: Added space 
in decimal type serialization for compatibility with other engines
+- **[NaN pushdown 
correctness](https://github.com/apache/iceberg-rust/pull/2351)**: Fixed NaN 
pushdown to correctly handle NaN values
+- **[Puffin magic number 
validation](https://github.com/apache/iceberg-rust/pull/2416)**: Added missing 
validation for magic number at the start of a Puffin file
+- **[Glue catalog 
filtering](https://github.com/apache/iceberg-rust/pull/2570)**: Only list 
Iceberg tables, not all Glue tables
+- **[Empty insert 
handling](https://github.com/apache/iceberg-rust/pull/2712)**: INSERT 
operations that produce no rows now correctly return a single row with count 0
+- **[Name-mapped field 
IDs](https://github.com/apache/iceberg-rust/pull/2612)**: Projection and 
predicate pushdown now correctly use name-mapped field IDs for Parquet files 
without embedded field IDs
+- **[Snapshot summary total 
fields](https://github.com/apache/iceberg-rust/pull/2589)**: Total values are 
now omitted if the previous summary had unparsable or no previous total.
+- **[Negative positional delete 
positions](https://github.com/apache/iceberg-rust/pull/2631)**: Negative 
positions now error during evaluation instead of wrapping to large u64 offsets
+- **[Non-append insert 
rejection](https://github.com/apache/iceberg-rust/pull/2714)**: 
Overwrite/replace inserts in DataFusion are now rejected instead of silently 
succeeding with append semantics
+- **[Snapshot summary 
metrics](https://github.com/apache/iceberg-rust/pull/2726)**: User-supplied 
properties can no longer override computed summary metrics
+
+## Breaking Changes
+
+Here's a few notable breaking changes.
+Given `iceberg-rust` has not yet reached version `1.x`, breaking changes are 
adopted for a better API long-term.
+
+- **[Purge table](https://github.com/apache/iceberg-rust/pull/2232)**: Added 
`purge_table` to the `Catalog` trait; some catalog implementations moved their 
data-deletion logic from `drop_table` to `purge_table`
+- **[Compression codec 
enum](https://github.com/apache/iceberg-rust/pull/2288)**: Codec enum variant 
changes introducing Snappy, and including compression levels in Zstd and Gzip.
+- **[Custom Runtime in 
Catalog](https://github.com/apache/iceberg-rust/pull/2308)**: Added 
`with_runtime` to the `CatalogBuilder` trait
+- 
**[DefaultLocationGenerator](https://github.com/apache/iceberg-rust/pull/2604)**:
 `new()` now borrows `TableMetadata` instead of taking ownership
+- **[MSRV](https://github.com/apache/iceberg-rust/pull/2652)**: Bumped to Rust 
1.94
+
+## Dependency Updates
+
+This release included a number of dependency updates, including upgrading to 
Apache DataFusion 53 and Apache Arrow 58.
+For a full list of dependency versions, the best resources to review are the 
Cargo manifests.
+
+## Infrastructure Improvements
+
+- **Public API stability**: [cargo-public-api 
checks](https://github.com/apache/iceberg-rust/pull/2525) on every PR to catch 
unintentional API breakage
+- **Trusted publishing**: [Migrated to trusted 
publishing](https://github.com/apache/iceberg-rust/pull/2593) for crates.io 
releases
+- **Standalone compilation**: [CI verifies each crate compiles 
independently](https://github.com/apache/iceberg-rust/pull/2389)
+- **Security**: Pinned all third-party actions to Apache-approved SHAs; ASF 
allowlist check on every PR
+- **Performance**: [Disabled debuginfo and incremental 
compilation](https://github.com/apache/iceberg-rust/pull/2672) in CI; [Rust 
caches saved only from main](https://github.com/apache/iceberg-rust/pull/2669)
+
+## What's Next
+
+Work is already underway on several features for upcoming releases:
+
+- **Table encryption**: With the foundational encryption stack landed, the 
community is working toward end-to-end encrypted reads and writes
+- **Transaction layer improvement**: We are working on adding the snapshot 
validation mechanism to detect write conflicts, laying the groundwork for 
future support of RewriteDataFiles, RowDelta, and Overwrite commit operations.
+
+## Getting Involved
+
+The `iceberg-rust` project welcomes contributions. We use GitHub 
[issues](https://github.com/apache/iceberg-rust/issues) for tracking work and 
the [Apache Iceberg Community 
Slack](https://iceberg.apache.org/community/#slack) for discussions.
+
+The easiest way to get started is to:
+
+1. Try `iceberg-rust` with your workloads and report any issues you encounter
+2. Review the [contributor 
guide](https://github.com/apache/iceberg-rust/blob/main/CONTRIBUTING.md)
+3. Look for [good first 
issues](https://github.com/apache/iceberg-rust/contribute)
+
+Code review is also a very welcome contribution - please provide feedback on 
pull requests where you feel comfortable to do so!
+
+For more information, visit the [iceberg-rust 
repository](https://github.com/apache/iceberg-rust).

Reply via email to