Hi Anton,

 Yes, it's JNI-based. We're planning to evaluate the C++ client and
will reach out if we find any gaps.  Thanks for offering to help!

 Best,
 Qingyu


Anton Borisov <[email protected]> 于2026年4月23日周四 15:22写道:
>
> Hi Qingyu,
>
> That is very nice to hear, thanks for sharing.
>
> Please do not hesitate to test the C++ client as well, I think it has
> good potential to provide a cleaner integration path and, in the long
> run, better performance. I will be very happy to help with the gaps
> discovered.
>
> Am I right in assuming that the current integration is based on JNI?
>
> - Anton
>
> ср, 22 апр. 2026 г. в 04:59, 张庆玉 <[email protected]>:
> >
> > Hi,
> >
> > Thanks for bringing this up. I'm from the StarRocks team at Alibaba Cloud.
> >
> > We've already integrated Fluss with StarRocks internally and have 
> > production users running on it. We're currently working on upstreaming our 
> > integration to the StarRocks community.
> >
> > We also plan to continuously optimize the query performance of StarRocks on 
> > Fluss, including integrating the C++ client. Happy to collaborate and help 
> > unblock anything needed on either side.
> >
> > Best,
> > Qingyu
> >
> >
> > On 2026/04/21 10:57:13 Anton Borisov wrote:
> > > Hi all,
> > >
> > >  Quick interim read, based on the feedback so far -  the shape of
> > > 0.2.0 looks right, and priorities come through fairly clearly. Thread
> > > obviously stays open for further discussions, happy to revise as more
> > > voices weigh in.
> > >
> > > The strongest signal is to start with the repo merge. I am drafting
> > > the FIP now and will post it as a separate [DISCUSS] thread this week,
> > > scoped narrowly to the fluss-rust -> fluss plan.
> > >
> > > Observability and metrics (#390) clearly belong in the 0.2.0 must-have
> > > set. The PR is already in good shape, and basic latency and throughput
> > > metrics are a real production-user need. They also give us a
> > > foundation for positioning each binding going forward.
> > >
> > > For filter pushdown in the FIP-32 Gateway, we do want it eventually,
> > > but for now we treat it as a nice-to-have for this release unless
> > > contributors pick it up. Thanks Yuxia - this also matches my
> > > reasoning.
> > >
> > > Elixir parity should not be in scope for this release. If part of that
> > > work arrives independently and is already in very good shape, we would
> > > be happy to include that subset. Anything still in flight should move
> > > to its own release.
> > >
> > > On bindings more broadly, I found Jark’s point persuasive that
> > > TypeScript is a stronger fit than Go for AI-agent positioning, which
> > > makes it the next native binding to prioritise. That said, I don't
> > > feel we have enough capacity to commit release scope here unless
> > > external contributors step up to help drive it. Go stays deferred
> > > under the same demand-driven criterion.
> > >
> > > On StarRocks, following Hongshun’s point about production pressure, I
> > > see it as very much a nice-to-have for 0.2.0, with the C++ client as
> > > the right long-term consumer once the analytical features planned for
> > > 0.2.0 are in place. After this release, the broader Rust/C++
> > > analytical story should be in much better shape.
> > >
> > > Some parts of the StarRocks work can start independently now. Since
> > > the StarRocks FE nodes run on the JVM, catalog integration can use the
> > > Java client without waiting on the C++ or Rust side. If anyone close
> > > to the StarRocks side wants to help drive this, please speak up, also
> > > genuinely interested in this myself and will help unblock anything
> > > that requires work on the Fluss side.
> > >
> > > FIP thread incoming.
> > >
> > > Best,
> > > Anton
> > >
> > > вт, 21 апр. 2026 г. в 03:40, Hongshun Wang <[email protected]>:
> > > >
> > > > Hi Anton,
> > > >
> > > > I'm also very interested in the Rust client and will pay more attention
> > > > later.
> > > >
> > > > From our experience, the Java client has been battle-tested at scale in
> > > > production through Flink job integration, and it was precisely that
> > > > real-world production traffic that surfaced edge cases and drove 
> > > > continuous
> > > > improvements. However, The Rust client currently lacks an equivalent
> > > > production-grade scenario.
> > > >
> > > > I believe pushing forward integrations withStarRocks would provide 
> > > > exactly
> > > > that kind of pressure — production workloads are the best way to expose
> > > > hidden issues and drive the client toward true maturity.
> > > >
> > > > Best,
> > > > Hongshun
> > > >
> > > > On Tue, Apr 21, 2026 at 12:00 AM Jark Wu <[email protected]> wrote:
> > > >
> > > > > Hi Anton,
> > > > >
> > > > > Thanks for putting together such a comprehensive and well-structured
> > > > > proposal. All the roadmap items sound good to me.
> > > > >
> > > > > Regarding the open questions:
> > > > >
> > > > > > Should we prioritize fluss-rust repo merging first?
> > > > >
> > > > > I strongly believe we should initiate the repo merge process as soon
> > > > > as possible, and it must be completed before Fluss 1.0. Here is my
> > > > > reasoning:
> > > > >
> > > > > Fluss 1.0 should represent the complete form of the project — with the
> > > > > Gateway, all language SDKs, and unified release coordination from a
> > > > > single repository. This is what signals to users and the broader
> > > > > ecosystem that Fluss has reached maturity. A fragmented multi-repo
> > > > > layout at GA would undermine that message.
> > > > >
> > > > > That said, the merge itself is a significant undertaking: code
> > > > > migration, CI unification, documentation restructuring, issue
> > > > > migration, contributor workflow changes, etc. This will consume
> > > > > non-trivial community bandwidth.
> > > > >
> > > > > > Go/TypeScript bindings
> > > > >
> > > > > Big +1 from me.
> > > > >
> > > > > TypeScript has become the first-choice language for AI Agent
> > > > > development. Having a native Fluss TypeScript client would position
> > > > > Fluss very well in the AI-native data infrastructure space.
> > > > >
> > > > > Best,
> > > > > Jark
> > > > >
> > > > > On Mon, 20 Apr 2026 at 21:13, yuxia <[email protected]> wrote:
> > > > > >
> > > > > > Thanks Anton for putting together such a well-structured proposal.
> > > > > >
> > > > > > +1 on the overall tiering. Themes 1-3 as must-have and Theme 4 as
> > > > > stretch feels right to me. A few comments inline:
> > > > > >
> > > > > > OPEN QUESTIONS
> > > > > >
> > > > > > > Should we prioritize fluss-rust repo merging first?
> > > > > >
> > > > > > I think we can pursue both in parallel. While the repo-merge 
> > > > > > proposal
> > > > > goes through community discussion (DISCUSS / VOTE), we continue 
> > > > > developing
> > > > > 0.2.0 features in the fluss-rust repo as usual — no need to block one 
> > > > > on
> > > > > the other.
> > > > > >
> > > > > > That said, I do think we should aim to complete the merge before 
> > > > > > Fluss
> > > > > 1.0, so that 1.0 ships both the Java server and the Rust client from a
> > > > > single repository.
> > > > > > A unified repo at GA gives users a clearer story and simplifies 
> > > > > > release
> > > > > coordination going forward.
> > > > > >
> > > > > > > Go/TypeScript bindings
> > > > > > I am open to this. It really depends on community demand — if there 
> > > > > > are
> > > > > users or contributors who need Go or TypeScript bindings and are 
> > > > > willing to
> > > > > help drive the effort, I think we should welcome it.
> > > > > >
> > > > > > > Filter pushdown for FIP-32 Gateway
> > > > > >
> > > > > > Maybe not a blocker for 0.2, but I think will be nice to have it.
> > > > > >
> > > > > >
> > > > > > > Observability/metrics, TLS/mTLS, auth
> > > > > >
> > > > > > Observability/ Metrics (#390) would be a nice-to-have for 0.2.0 — 
> > > > > > even
> > > > > basic operation latency and throughput counters help production users.
> > > > > > IIRC, it should be in good shape to merge.
> > > > > >
> > > > > >
> > > > > > > Elixir bindings
> > > > > >
> > > > > > +1 on letting this slip to its own release if needed. Feature parity
> > > > > across 13+ issues is a lot of surface area and should not block the 
> > > > > core
> > > > > release.
> > > > > >
> > > > > > Best regards,
> > > > > > Yuxia
> > > > > >
> > > > > > ----- 原始邮件 -----
> > > > > > 发件人: "Anton Borisov" <[email protected]>
> > > > > > 收件人: "dev" <[email protected]>
> > > > > > 发送时间: 星期一, 2026年 4 月 20日 下午 6:20:13
> > > > > > 主题: [DISCUSS] fluss-rust roadmap for 0.2.0-incubating
> > > > > >
> > > > > > Hi all,
> > > > > >
> > > > > > With 0.1.0-incubating shipped, thanks to Yunhong(RM), Yuxia,
> > > > > > Keith and everyone who contributed, I would like to open discussion
> > > > > > on priorities for the next fluss-rust release.
> > > > > >
> > > > > > I propose discussing 0.2.0-incubating roadmap, with the goal of 
> > > > > > making
> > > > > > fluss-rust production-viable for analytical consumers such as
> > > > > > DataFusion, Polars, DuckDB, and CDC pipelines, while also closing
> > > > > > a known correctness gaps, types support.
> > > > > >
> > > > > > Rather than a flat list, I grouped the items into four themes,
> > > > > > plus a parallel Elixir track. I also proposed an initial tiering
> > > > > > of must-have versus stretch goals. Please push back where you
> > > > > > disagree.
> > > > > >
> > > > > > THEME 1: CORRECTNESS: SCHEMA-AWARE DECODING ON KV LOOKUP
> > > > > >
> > > > > > [MUST-HAVE]
> > > > > >
> > > > > > KV rows in Fluss carry a 2-byte schema ID prefix. The KV batch
> > > > > > reader already uses this ID to select the correct decoder via
> > > > > > read_context.get_row_decoder. The lookup path does not. Today,
> > > > > > both Lookuper::lookup and PrefixKeyLookuper::lookup decode every
> > > > > > row using the table's latest row_type, so rows written under an
> > > > > > earlier schema version can be returned with incorrect field
> > > > > > values.
> > > > > >
> > > > > > Scope:
> > > > > >
> > > > > > Schema-ID-aware decoding in Lookuper and PrefixKeyLookuper
> > > > > >
> > > > > > Client-side schema cache (fetch schema by ID, LRU). The metadata
> > > > > > path may need minor work depending on what is already cached in
> > > > > > TableInfo
> > > > > >
> > > > > > Tests covering multi-schema-version rows through both lookup paths
> > > > > >
> > > > > > Out of scope for this theme:
> > > > > >
> > > > > > The KvRecordBatch decode is already schema-ID-aware - confined to
> > > > > > Lookup only.
> > > > > >
> > > > > > Log tables are fine as it is.
> > > > > >
> > > > > > Tracking:
> > > > > >
> > > > > > https://github.com/apache/fluss-rust/issues/508
> > > > > >
> > > > > > THEME 2: UNLOCK ANALYTICAL INTEGRATIONS
> > > > > >
> > > > > > [MUST-HAVE]
> > > > > >
> > > > > > Two features that together would make Fluss a first-class source
> > > > > > for the analytical ecosystem.
> > > > > >
> > > > > > (a) Limit scan, with full client-side support
> > > > > >
> > > > > > Proto and RPC plumbing already landed (PR #472 / issue #315). The
> > > > > > remaining work is exposing the limit through the public scanner
> > > > > > API so that limit pushdown reaches DataFusion integrations. Issue
> > > > > > #311 was filed explicitly to support fluss-datafusion and is also
> > > > > > useful for other analytical consumers.
> > > > > >
> > > > > > https://github.com/apache/fluss-rust/issues/311
> > > > > >
> > > > > > (b) Changelog subscription for KV tables
> > > > > >
> > > > > > This would let downstream consumers stream change events out of
> > > > > > primary-key tables, which is the natural companion to upsert
> > > > > > writes.
> > > > > >
> > > > > > https://github.com/apache/fluss-rust/issues/380
> > > > > >
> > > > > > THEME 3: TYPE AND BINDING COMPLETENESS
> > > > > >
> > > > > > [MUST-HAVE]
> > > > > >
> > > > > > Close the remaining gaps so that all bindings reach parity on
> > > > > > primitive and composite types.
> > > > > >
> > > > > > Map type in Rust core (depends on array support already landed)
> > > > > >
> > > > > > https://github.com/apache/fluss-rust/issues/387
> > > > > >
> > > > > > Array support in C++ bindings
> > > > > >
> > > > > > https://github.com/apache/fluss-rust/issues/468
> > > > > >
> > > > > > Cross-binding integration tests for arrays
> > > > > >
> > > > > > https://github.com/apache/fluss-rust/issues/441
> > > > > >
> > > > > > Prefix lookup exposed in Python / C++ / Elixir
> > > > > >
> > > > > > Rust core just landed via PR #500 / issue #499. I will file
> > > > > > tracking issues for binding exposure this week.
> > > > > >
> > > > > > Already landed and out of scope here:
> > > > > >
> > > > > > Array support in Rust (#386)
> > > > > >
> > > > > > Array support in Python (#469)
> > > > > >
> > > > > > THEME 4: FOUNDATIONS FOR THE NEXT CYCLE
> > > > > >
> > > > > > [STRETCH]
> > > > > >
> > > > > > Benchmark harness producing reproducible Rust / Python / C++
> > > > > > numbers, ideally suitable for nightly regression tracking in CI.
> > > > > > A separate FIP with full design will follow. I already have a raw
> > > > > > prototype that I use to verify regressions locally.
> > > > > >
> > > > > > https://github.com/apache/fluss-rust/issues/489
> > > > > >
> > > > > > ArrowWriter pooling on the write path, mirroring Java's
> > > > > > ArrowWriterPool. This complements the jemalloc / pre-size work
> > > > > > (#429) and null-append optimization (#470) already landed. It
> > > > > > would be best to land this on top of benchmark coverage so we can
> > > > > > quantify the gain.
> > > > > >
> > > > > > https://github.com/apache/fluss-rust/issues/444
> > > > > >
> > > > > > PARALLEL TRACK: ELIXIR BINDINGS 0.1 FEATURE PARITY
> > > > > >
> > > > > > The Elixir bindings (initial PR #452) need a broader set of
> > > > > > features to reach parity with Rust, Python and C++.
> > > > > >
> > > > > > Open issues:
> > > > > > #457, #458, #459, #460, #461, #462, #463, #464, #465, #466,
> > > > > > #467, #493, #498
> > > > > >
> > > > > > I am happy for this to slip to its own release if the core team
> > > > > > agrees.
> > > > > >
> > > > > > GOVERNANCE TRACKS: SEPARATE FIPS
> > > > > >
> > > > > > Flagging these so the roadmap accounts for them, but each would
> > > > > > get its own DISCUSS / VOTE thread:
> > > > > >
> > > > > > FIP: Benchmark harness design (supports Theme 4)
> > > > > >
> > > > > > FIP: Consolidate apache/fluss-rust into apache/fluss
> > > > > >
> > > > > > OPEN QUESTIONS
> > > > > >
> > > > > >  - Is the proposed tiering reasonable, with Themes 1-3 as must-have
> > > > > > and Theme 4 as stretch? Is anything missing or mis-prioritized?
> > > > > >
> > > > > > - Should we prioritize fluss-rust repo merging first?
> > > > > >
> > > > > > - Go/Typescript bindings to consider?
> > > > > >
> > > > > > - FIP-32 Gateway builds on fluss-rust (projection pushdown
> > > > > > already supported). Should we add filter pushdown to 0.2.0
> > > > > > to unblock it, or defer?
> > > > > >
> > > > > > - Are there other items the community has been asking for that
> > > > > > should be considered here, such as observability/metrics(we have
> > > > > > https://github.com/apache/fluss-rust/issues/390 to start work 
> > > > > > there),
> > > > > > TLS/mTLS, or auth beyond SASL/PLAIN?
> > > > > >
> > > > > > Looking forward to feedback.
> > > > > >
> > > > > > Best,
> > > > > > — Anton
> > > > >
> > >

Reply via email to