whatisgithub

What is streamfusion?

datafusion-contrib/streamfusion — explained in plain English

Analysis updated 2026-05-18

49JavaAudience · ops devopsComplexity · 5/5Setup · hard

In one sentence

An open-source accelerator that makes Apache Flink SQL run faster by natively executing supported streaming operators in Rust via Apache DataFusion.

Mindmap

mindmap
  root((repo))
    What it does
      Accelerates Flink SQL
      Native Rust execution
      Transparent fallback
    Tech stack
      Rust and Arrow
      Apache DataFusion
      Java JNI bridge
    Use cases
      Faster streaming joins
      Windowed aggregations
      Nexmark benchmarking
    Audience
      Flink platform engineers
      Data infra teams
    Guarantees
      Byte identical results
      Conservative fallback

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Speed up existing Apache Flink SQL pipelines without rewriting queries.

USE CASE 2

Run streaming joins, windowed aggregations, and deduplication natively for higher throughput.

USE CASE 3

Benchmark Flink query performance against a native columnar execution path using Nexmark.

What is it built with?

RustJavaApache FlinkApache ArrowDataFusionKafka

How does it compare?

datafusion-contrib/streamfusionjdubois/boot-uisaidsurucu/ude-mac-arm64
Stars494948
LanguageJavaJavaJava
Setup difficultyhardeasyeasy
Complexity5/52/52/5
Audienceops devopsdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires an existing Apache Flink deployment plus native library integration via JNI, not a standalone tool.

So what is it?

StreamFusion speeds up Apache Flink, a widely used tool for processing continuous streams of data, without asking users to change their queries. Flink normally runs everything in Java on the Java Virtual Machine. StreamFusion swaps out the parts of a query it can reproduce exactly for a faster native version written using Rust and Apache Arrow's DataFusion engine, while Flink keeps handling planning and anything not yet supported. Because the substitution only happens when the results would be identical, users get faster execution without any change in behavior. The idea builds on a similar project called DataFusion Comet, which does this for batch processing, and applies it instead to streaming workloads: things like time-windowed aggregation, joins between streams, deduplication, and reading or writing columnar file formats. A query only speeds up if every operator in it, aside from the very first source and very last sink, can run natively as one connected block, even a single unsupported step in the middle sends the whole query back to standard Flink. Coverage is fairly wide. It includes stateless operations like filtering and projection, several kinds of time-based windowing, most types of joins, and changelog-style operations like streaming top-N queries and deduplication. It can read Parquet files and several Kafka message formats natively, and can even call custom Flink functions written by users when the native engine cannot reproduce them itself, without breaking the fast path around that function. The project takes deliberate care to guarantee results match stock Flink exactly, byte for byte, for everything it supports, which the authors verify with a dedicated benchmark suite. They publish detailed benchmark results using the Nexmark test suite, an industry-standard set of streaming queries, showing meaningful speedups (often between 1.3 and 3 times faster, sometimes higher) across nearly all tested queries compared to running the same queries on unmodified Flink. This project is aimed squarely at engineers already running Apache Flink in production who want more throughput without switching platforms or rewriting their SQL queries. It is early-stage open source work and not officially affiliated with either the Apache Flink or Apache DataFusion projects.

Copy-paste prompts

Prompt 1
Explain how StreamFusion decides whether a Flink query can run natively or falls back to standard Flink.
Prompt 2
What streaming SQL operators does StreamFusion support natively, and which stay on Flink?
Prompt 3
Summarize the Nexmark benchmark results comparing StreamFusion to stock Flink.
Prompt 4
How does StreamFusion guarantee byte-identical results compared to standard Apache Flink?

Frequently asked questions

What is streamfusion?

An open-source accelerator that makes Apache Flink SQL run faster by natively executing supported streaming operators in Rust via Apache DataFusion.

What language is streamfusion written in?

Mainly Java. The stack also includes Rust, Java, Apache Flink.

How hard is streamfusion to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is streamfusion for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.