This is an automated email from the ASF dual-hosted git repository.
ipolyzos pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git
The following commit(s) were added to refs/heads/main by this push:
new 10e93681c [blog] Fluss rust / python / c++ client release blog draft
(#2730)
10e93681c is described below
commit 10e93681cd951ccaf99166ad28df81cf032bfead
Author: Keith Lee <[email protected]>
AuthorDate: Tue Apr 7 08:40:34 2026 +0100
[blog] Fluss rust / python / c++ client release blog draft (#2730)
* Add Fluss Rust/Python/C++ 0.1.0 release blog post
Blog post announcing the first official release of fluss-rust with
Python and C++ bindings. Covers table operations, Arrow-native batch
scanner, remote storage support, and getting started links. Also adds
new blog authors and updates Mehul's title to PPMC member.
* Update fluss-rust release blog date and minor proof read update.
---
.../2026-04-06-fluss-rust-python-cpp-release.md | 76 +++++++++++++++++++++
website/blog/assets/fluss_rust_release/banner.png | Bin 0 -> 276642 bytes
website/blog/authors.yml | 14 +++-
3 files changed, 88 insertions(+), 2 deletions(-)
diff --git a/website/blog/2026-04-06-fluss-rust-python-cpp-release.md
b/website/blog/2026-04-06-fluss-rust-python-cpp-release.md
new file mode 100644
index 000000000..fcd0a4726
--- /dev/null
+++ b/website/blog/2026-04-06-fluss-rust-python-cpp-release.md
@@ -0,0 +1,76 @@
+---
+slug: fluss_rust_client_release
+date: 2026-04-06
+title: "Announcing Apache Fluss (Incubating) Rust, Python, and C++ Client
0.1.0 Release"
+authors: [yuxia, keithlee, anton]
+toc_max_heading_level: 5
+tags: [releases, fluss-rust, fluss-rs, pyfluss, fluss-cpp, arrow]
+image: ./assets/fluss_rust_release/banner.png
+---
+
+
+
+We are excited to announce the release of [fluss-rust
clients](https://github.com/apache/fluss-rust) 0.1.0, the first official
release of the
[Rust](https://clients.fluss.apache.org/user-guide/rust/installation),
[Python](https://clients.fluss.apache.org/user-guide/python/installation), and
[C++](https://clients.fluss.apache.org/user-guide/cpp/installation) clients for
Apache Fluss. This 0.1.0 release represents the culmination of 210+ commits
from the community, delivering a feature-ric [...]
+
+Under the hood, all three clients share a single Rust core that handles
protocol negotiation, batching, retries, and [Apache
Arrow](https://arrow.apache.org/)-based data exchange, with thin
language-specific bindings on top. This was a deliberate community decision to
deliver native performance and feature parity across every language from day
one.
+
+## Highlights
+
+### Support for all Fluss table types
+
+- Log Tables - Append-only streaming ingestion with subscription-based
polling. Example uses include clickstreams, IoT sensor data, and audit logs.
See [log table
examples](https://clients.fluss.apache.org/user-guide/rust/example/log-tables)
+([Python](https://clients.fluss.apache.org/user-guide/python/example/log-tables),
[C++](https://clients.fluss.apache.org/user-guide/cpp/example/log-tables)).
+- Primary Key Tables - Upsert, delete, and point lookups by key, with support
for partial column updates. Example uses include product catalogs and real-time
dashboards backed by data from multiple sources.
+See [primary key table
examples](https://clients.fluss.apache.org/user-guide/rust/example/primary-key-tables)
([Python](https://clients.fluss.apache.org/user-guide/python/example/primary-key-tables),
[C++](https://clients.fluss.apache.org/user-guide/cpp/example/primary-key-tables)).
+- Partitioned Tables - Both Log and Primary Key tables support partitioning,
with partition-aware reads and writes.
+See the [partitioned table
examples](https://clients.fluss.apache.org/user-guide/rust/example/partitioned-tables)
([Python](https://clients.fluss.apache.org/user-guide/python/example/partitioned-tables),
[C++](https://clients.fluss.apache.org/user-guide/cpp/example/partitioned-tables)).
+
+All table types support idempotent writes and memory-bounded backpressure for
reliable production use. The scanner includes parallel, prioritized remote
segment fetching for efficient reads over tiered storage. The Python client
additionally provides Polars and Pandas specific APIs for seamless integration
with dataframe workflows.
+
+### Zero-copy Arrow integration
+
+Leverage your existing Apache Arrow ecosystem. Whether you use Polars, Pandas,
DuckDB, DataFusion, or Arrow directly, the clients speak Arrow natively. Log
records are represented as Arrow RecordBatches throughout the stack, so data
arriving from Fluss can be handed directly to your tools without serialization
or conversion.
+
+A batch scanner mode makes this practical at scale: it returns complete
RecordBatches to the caller, ready for immediate use. Python users can pass
batches straight to Polars or Pandas, C++ applications can feed them into
DuckDB, and Rust tools benefit from the same zero-copy path. The Java client
does not offer this today because Flink and Spark convert data into their own
internal row formats on ingestion. For the native ecosystem, skipping that
conversion is where the performance wins are.
+
+### Direct reads from tiered storage
+
+Fluss tiers older log segments to remote storage. When you need to replay or
backfill historical data, fluss-rust reads those segments directly from the
object store rather than routing them back through the server. This keeps
replay workloads off the serving path and avoids paying for data to round-trip
through the cluster.
+
+Supported storage backends (enabled via feature flags):
+
+- **storage-fs** — Local filesystem (default)
+- **storage-s3** — [Amazon S3](https://aws.amazon.com/s3/)
+- **storage-oss** — [Alibaba Object Storage
Service](https://www.alibabacloud.com/product/object-storage-service)
+
+A priority-queue-based prefetching system with configurable concurrent
downloads keeps sequential scans from stalling on object store round trips.
+
+### Other Features
+
+The release also includes SASL/PLAIN authentication across all three clients,
a comprehensive admin API for database and table management, fire-and-forget
write batching with configurable bucket assignment strategies, column
projection, and more.
+
+### Getting Started
+
+- Rust: fluss-rs [installation
guide](https://clients.fluss.apache.org/user-guide/rust/installation).
+- Python: pyfluss [installation
guide](https://clients.fluss.apache.org/user-guide/python/installation).
+- C++: fluss-cpp [installation
guide](https://clients.fluss.apache.org/user-guide/cpp/installation).
+
+### What's Next
+
+This is the first release of fluss-rs, pyfluss and fluss-cpp, and the
community is actively working on expanding capabilities. Areas of future
development include additional language bindings, additional storage backends,
enhanced compression support, and expanded ecosystem integrations.
+
+### Thank You, Contributors
+
+This release would not have been possible without the efforts of our
contributors. Thank you to everyone who submitted code, reported issues,
reviewed pull requests, and helped shape the project:
+
+[AlexZhao](https://github.com/zhaohaidao), [Andrea
Bozzo](https://github.com/AndreaBozzo), [Anton
Borisov](https://github.com/fresh-borzoni), [Arnav
Panjla](https://github.com/Arnav-panjla), [Chase
Naples](https://github.com/cnaples79),
[Evan](https://github.com/binary-signal), [Jark
Wu](https://github.com/wuchong), [Junbo Wang](https://github.com/beryllw),
[Junfan Zhang](https://github.com/zuston), [Kaiqi
Dong](https://github.com/charlesdong1991), [Karan
Pradhan](https://github.com/Kara [...]
+
+### Getting Involved
+
+The Apache Fluss community welcomes contributions!
+
+- Client GitHub: https://github.com/apache/fluss-rust
+- Client Documentation: https://clients.fluss.apache.org
+- Website: https://fluss.apache.org/
+- Mailing List: https://fluss.apache.org/community/welcome/#mailing-lists
+- Slack: https://apache-fluss.slack.com
\ No newline at end of file
diff --git a/website/blog/assets/fluss_rust_release/banner.png
b/website/blog/assets/fluss_rust_release/banner.png
new file mode 100644
index 000000000..40f53c6ce
Binary files /dev/null and b/website/blog/assets/fluss_rust_release/banner.png
differ
diff --git a/website/blog/authors.yml b/website/blog/authors.yml
index e9e6fdc67..573c1e756 100644
--- a/website/blog/authors.yml
+++ b/website/blog/authors.yml
@@ -52,7 +52,7 @@ zhangxinyu:
mehulbatra:
name: Mehul Batra
- title: Apache Fluss (Incubating) Committer
+ title: PPMC member of Apache Fluss (Incubating)
url: https://github.com/mehulbatra
image_url: /img/avatars/mehulbatra.png
@@ -62,4 +62,14 @@ jacopogardini:
url: https://github.com/Lourousa
image_url: /img/avatars/jacopogardini.png
-
\ No newline at end of file
+anton:
+ name: Anton Borisov
+ title: Contributor of Apache Fluss (Incubating)
+ url: https://github.com/fresh-borzoni
+ image_url: https://github.com/fresh-borzoni.png
+
+keithlee:
+ name: Keith Lee
+ title: Apache Fluss (Incubating) Committer
+ url: https://github.com/leekeiabstraction
+ image_url: https://github.com/leekeiabstraction.png
\ No newline at end of file