This is an automated email from the ASF dual-hosted git repository.
JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon-website.git
The following commit(s) were added to refs/heads/master by this push:
new bd4a2ead Paimon Rust 0.1.0 release note (#30)
bd4a2ead is described below
commit bd4a2eadc8c13d4fb397eb22bd78134e118f50d7
Author: yuxia Luo <[email protected]>
AuthorDate: Fri May 8 11:15:25 2026 +0800
Paimon Rust 0.1.0 release note (#30)
---
.../docs/releases/paimon-rust-release-0.1.0.md | 266 +++++++++++++++++++++
1 file changed, 266 insertions(+)
diff --git a/community/docs/releases/paimon-rust-release-0.1.0.md
b/community/docs/releases/paimon-rust-release-0.1.0.md
new file mode 100644
index 00000000..fee03f69
--- /dev/null
+++ b/community/docs/releases/paimon-rust-release-0.1.0.md
@@ -0,0 +1,266 @@
+---
+title: "Paimon Rust Release 0.1.0"
+type: release
+version: Rust 0.1.0
+---
+
+# Paimon Rust 0.1.0 Available
+
+Apr 2026 - Yuxia Luo ([email protected])
+
+The Apache Paimon PMC officially announces the first release of Paimon Rust
0.1.0. This release includes
+133 commits from 21 contributors. We would like to express our sincere
gratitude to all the developers
+who have participated in the contribution!
+
+## What is Paimon Rust?
+
+[Paimon Rust](https://github.com/apache/paimon-rust) is a native Rust
implementation of the Apache Paimon
+lake format. It provides a high-performance, cross-platform entry point to the
Paimon ecosystem with
+multi-language bindings and query engine integration.
+
+## Version Overview
+
+The first version of Paimon Rust supports the following features:
+
+1. Full Paimon table format specification implementation.
+2. Table Read: ReadBuilder with column projection, predicate pushdown, schema
evolution, deletion vector, and multi-format reader (Parquet, ORC, Avro).
+3. Table Write (Initial): INSERT INTO/OVERWRITE, SnapshotCommit, and MERGE &
UPDATE support.
+4. Table Scan: partition/bucket pruning, stats pruning, deletion vector
filtering, and limit pushdown.
+5. Index: File Index, BTree global index, and Tantivy full-text search.
+6. Time Travel: by snapshot ID, timestamp, tag name, and DataFusion `VERSION
AS OF`.
+7. Catalog: Filesystem Catalog and REST Catalog.
+8. Storage: Local filesystem, S3, OSS, and HDFS.
+9. Apache DataFusion integration with DDL, DML, predicate pushdown, and
parallelized split execution.
+10. Language bindings: Python (pypaimon_rust), Go.
+
+### Supported Table Types
+
+| Table Type | Scan | Read | Write
|
+|------------------------------------------|-----------|-----------|----------------------------|
+| Append-Only Table | Supported | Supported | Supported
|
+| Primary Key Table (with Deletion Vector) | Supported | Supported | Not yet
supported |
+| Data Evolution Table (Append-Only) | Supported | Supported | Supported
(MERGE & UPDATE) |
+
+- **Append-Only Table**: Fully supported for scan, read, and write. Supports
partitioned and bucketed tables.
+- **Primary Key Table**: Scan and read are supported when deletion vectors are
enabled. Write is not yet supported
+ in this version.
+- **Data Evolution Table**: Supports MERGE INTO operations on append-only
tables with `data-evolution.enabled`
+ and `row-tracking.enabled`, enabling row-ID-based column updates.
+
+### Table Format Specification
+
+Implemented the complete Paimon spec layer including Snapshot, Schema,
DataFileMeta, ManifestList, ManifestFile,
+IndexManifest, and all primitive & complex data types with full
serialization/deserialization support.
+
+### Table Read
+
+Paimon Rust provides a full-featured read path:
+
+- **ReadBuilder** with column projection, partition-level and data-level
predicate pushdown, and filter
+ push-down to the Parquet read path.
+- **Deletion Vector** support — plan, read, and apply deletion vectors with
row-level filtering and
+ cardinality tracking.
+- **Schema Evolution** read with `SchemaManager`, supporting data evolution
table mode and row-id-based
+ evolution filtering.
+- **Multi-format readers** — abstracted `FormatFileReader` with Parquet
(primary), ORC, and Avro reader
+ implementations.
+
+### Table Scan
+
+- **TableScan** with split planning.
+- **Partition and bucket pruning** to skip irrelevant data.
+- **Stats-based pruning** at both partition and data-file levels.
+- **Deletion vector and postpone filtering** with data-evolution group pruning.
+- **Limit pushdown** support.
+
+### Table Write
+
+The initial write path includes:
+
+- **Write Pipeline** with DataFusion `INSERT INTO` / `INSERT OVERWRITE`
support for append-only tables.
+- **Commit Pipeline** with `SnapshotCommit` abstraction for atomic commits.
+- **MERGE & UPDATE** support via `DataEvolutionWriter` for data evolution
tables.
+
+### Index
+
+- **File Index** format read and write.
+- **BTree Global Index** reader with async on-demand block loading.
+- **Tantivy Full-Text Search** with on-demand archive reading.
+
+### Time Travel
+
+- Time travel by **snapshot ID**, **timestamp**, and **tag name**.
+- DataFusion **`VERSION AS OF`** syntax support.
+
+### Catalog
+
+- **Filesystem Catalog** for local and cloud storage.
+- **REST Catalog** with full database and table CRUD operations.
+
+### Storage Backends
+
+Paimon Rust supports multiple storage backends via [Apache
OpenDAL](https://github.com/apache/opendal):
+
+- **Local filesystem** (default)
+- **Amazon S3**
+- **Alibaba Cloud OSS**
+- **HDFS** (via hdfs-native)
+
+### Apache DataFusion Integration
+
+The `paimon-datafusion` crate provides deep integration with Apache DataFusion:
+
+- Full **CatalogProvider** integration — register Paimon catalogs as
DataFusion catalogs.
+- **DDL** support with `CREATE TABLE` and `PRIMARY KEY` constraint syntax.
+- **INSERT INTO / INSERT OVERWRITE** write support.
+- **Partition predicate pushdown** and **statistics** for scan optimization.
+- **Parallelized split execution** for high throughput.
+- **Limit pushdown**.
+- **Time travel** with `VERSION AS OF`.
+- **`$options` system table** for table options inspection.
+
+### Python Binding
+
+Introduced `pypaimon` core with DataFusion catalog integration, allowing
Python users to query Paimon
+tables via DataFusion's Python interface.
+
+### Go Binding
+
+- **C FFI binding** layer for cross-language interop.
+- **Go binding** with table read, column projection, and filter push-down.
+- **Predicate API** with compound predicates (And/Or/Not) support.
+
+## Getting Started
+
+Add `paimon` to your `Cargo.toml`:
+
+```toml
+[dependencies]
+paimon = "0.1.0"
+```
+
+### Read a table with Paimon native API
+
+```rust
+use futures::TryStreamExt;
+use paimon::{Catalog, CatalogOptions, FileSystemCatalog, Options};
+use paimon::catalog::Identifier;
+
+#[tokio::main]
+async fn main() {
+ // 1. Create a FileSystemCatalog
+ let mut options = Options::new();
+ options.set(CatalogOptions::WAREHOUSE, "/path/to/warehouse");
+ let catalog = FileSystemCatalog::new(options).unwrap();
+
+ // 2. Get a table
+ let identifier = Identifier::new("my_db", "my_table");
+ let table = catalog.get_table(&identifier).await.unwrap();
+
+ // 3. Scan with projection and filter
+ let mut read_builder = table.new_read_builder();
+ read_builder.with_projection(&["id", "name"]);
+
+ let scan = read_builder.new_scan();
+ let plan = scan.plan().await.unwrap();
+
+ // 4. Read data as Arrow RecordBatches
+ let read = read_builder.new_read().unwrap();
+ let batches: Vec<_> = read
+ .to_arrow(plan.splits())
+ .unwrap()
+ .try_collect()
+ .await
+ .unwrap();
+
+ for batch in &batches {
+ println!("{:?}", batch);
+ }
+}
+```
+
+### Query with DataFusion SQL
+
+Add `paimon-datafusion` to your `Cargo.toml`:
+
+```toml
+[dependencies]
+paimon-datafusion = "0.1.0"
+```
+
+```rust
+use std::sync::Arc;
+use datafusion::prelude::SessionContext;
+use paimon::{Catalog, CatalogOptions, FileSystemCatalog, Options};
+use paimon_datafusion::PaimonCatalogProvider;
+
+#[tokio::main]
+async fn main() {
+ // 1. Create a catalog and register it with DataFusion
+ let mut options = Options::new();
+ options.set(CatalogOptions::WAREHOUSE, "/path/to/warehouse");
+ let catalog = FileSystemCatalog::new(options).unwrap();
+
+ let provider = PaimonCatalogProvider::new(Arc::new(catalog));
+ let ctx = SessionContext::new();
+ ctx.register_catalog("paimon", Arc::new(provider));
+
+ // 2. Query Paimon tables with SQL
+ let df = ctx
+ .sql("SELECT id, name FROM paimon.my_db.my_table WHERE id > 100")
+ .await
+ .unwrap();
+
+ df.show().await.unwrap();
+}
+```
+
+For more information, visit the
[documentation](https://paimon.apache.org/docs/rust/) and the
+[GitHub repository](https://github.com/apache/paimon-rust).
+
+## Future
+
+### Feature Parity with Paimon Java
+
+Continue aligning Paimon Rust with the Java implementation to cover core
lakehouse capabilities:
+
+- **Primary Key Table** — full read/write support with sort-merge
deduplication, dynamic bucket
+ assignment, and additional merge engines (partial-update, aggregation).
+- **DML & SQL** — copy-on-write DML (DELETE, UPDATE, MERGE INTO), `TRUNCATE
TABLE`,
+ `DROP PARTITION`, `INSERT OVERWRITE PARTITION`, `CALL` procedures, and
session-scoped
+ dynamic options (`SET`/`RESET`).
+- **System Tables** — `$schemas`, `$snapshots`, `$tags`, `$manifests` for
metadata inspection
+ via DataFusion SQL.
+
+### Multimodal Support
+
+Build multimodal data capabilities on top of the Paimon lake format:
+
+- **Lumina Vector Index** — vector similarity search via DataFusion SQL.
+- **Vortex File Format** — [Vortex](https://github.com/spiraldb/vortex)
columnar format support
+ as an alternative to Parquet.
+- **Variant Type** — semi-structured data support.
+- **Blob Type** — large binary object storage and DDL semantics.
+
+### TypeScript Language Binding
+
+As AI agents become a primary way to interact with data infrastructure, a
native TypeScript binding allows agent frameworks to directly read and
+query Paimon tables without JVM overhead, making Paimon a first-class data
source in the AI agent ecosystem.
+
+### Fluss Integration
+
+[Fluss](https://fluss.apache.org/) is a streaming storage built for real-time
analytics, where
+fresh data lands in Fluss and is continuously tiered into the Paimon lake. By
integrating
+[Fluss](https://fluss.apache.org/) as a DataFusion data source alongside
Paimon,
+we can build a unified query layer that transparently merges real-time data in
Fluss with
+historical data in Paimon, delivering second-level data freshness for
analytical queries — all
+within a pure-Rust, JVM-free deployment.
+
+
+## Contributors
+
+Thanks to all the contributors who made this release possible:
+
+Aitozi, Asura7969, Cancai Cai, DogeKing, ForwardXu, Huanbing, HunterXHunter,
Jiajia Li,
+Jingsong Lee, QuakeWang, Ryan Tan, SeungMin, Song Chuanqi, WenjunMin,
XiaoHongbo, Xuanwo,
+Yuxia Luo, umi, zmlcc