Fluvio logo

Fluvio

Composable distributed data streaming engine written in Rust

Lean distributed data streaming engine with stateful stream processing. Build real-time data pipelines with WebAssembly-based transformations and native connectors for MQTT, Kafka, HTTP, and SQL.

Fluvio banner

Overview

What is Fluvio?

Fluvio is a distributed data streaming engine written in Rust that combines high-performance event streaming with stateful data processing. Designed for developers building responsive, data-intensive applications, it provides a unified platform for collecting, transforming, and routing data in motion.

Core Capabilities

Fluvio supports WebAssembly-based stream processing through reusable "Smart Modules" that enable inline data transformations. Native connectors for HTTP, MQTT, Kafka, SQL, and experimental support for DuckDB, Redis, and S3 allow integration with virtually any system. The Connector Development Kit (CDK) and Smart Module Development Kit (SMDK) accelerate custom extension development.

Deployment & Ecosystem

Deploy locally via the Fluvio Version Manager (fvm) or use InfinyOn Cloud for managed hosting. Client libraries span Rust, Python, JavaScript, with community-maintained support for Go, Java, and Elixir. The Stateful DataFlow framework handles complex workflows with customization across multiple programming languages. Apache-2.0 licensed, Fluvio powers real-time analytics, event-driven architectures, and streaming data pipelines for cloud-native and serverless environments.

Highlights

Rust-native distributed streaming engine with low overhead and high throughput
WebAssembly-based Smart Modules for reusable inline stream transformations
Native connectors for HTTP, MQTT, Kafka, SQL with extensible CDK framework
Stateful DataFlow processing for complex, multi-stage data workflows

Pros

  • Lightweight Rust implementation optimized for performance and resource efficiency
  • Unified streaming and processing paradigm reduces architectural complexity
  • WebAssembly transformations enable safe, portable stream processing logic
  • Active community with connectors for Qdrant, Elastic, Google Sheets, and more

Considerations

  • Smaller ecosystem compared to established platforms like Apache Kafka or Flink
  • Some outbound connectors (DuckDB, Redis, S3, Graphite) remain experimental
  • Windows support requires WSL2 for best compatibility
  • Documentation and tooling maturity may lag behind enterprise-grade alternatives

Managed products teams compare with

When teams consider Fluvio, these hosted platforms usually appear on the same shortlist.

Aiven for Apache Kafka logo

Aiven for Apache Kafka

Managed Kafka with tiered storage and built-in schema registry.

Amazon Kinesis Data Streams logo

Amazon Kinesis Data Streams

Fully managed service for real-time event streaming on AWS.

Amazon MSK logo

Amazon MSK

Fully managed Apache Kafka on AWS.

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Developers building real-time analytics or event-driven microservices in Rust
  • Teams needing lightweight streaming infrastructure with embedded transformations
  • Organizations requiring custom connectors for proprietary or niche systems
  • Projects prioritizing composability and declarative data pipeline definitions

Not ideal when

  • Enterprises requiring battle-tested, decade-old streaming platforms with extensive vendor support
  • Teams without Rust expertise seeking purely managed, no-code streaming solutions
  • Use cases demanding mature connectors for legacy enterprise systems out-of-the-box
  • Windows-native deployments without virtualization or containerization

How teams use it

Real-Time Stock Market Dashboards

Ingest market data feeds, apply WebAssembly transformations for aggregations, and stream to visualization frontends with sub-second latency.

IoT Sensor Data Processing

Collect MQTT telemetry from edge devices, filter and enrich streams with Smart Modules, then route to SQL databases or time-series stores.

Event-Driven Microservices

Decouple services with Fluvio topics, apply stateful processing for order fulfillment workflows, and trigger downstream actions via HTTP connectors.

LLM Application Data Pipelines

Stream documents and embeddings to vector databases like Qdrant, transform content inline, and power retrieval-augmented generation systems.

Tech snapshot

Rust93%
Shell6%
Makefile1%
Dockerfile1%
Liquid1%
RenderScript1%

Tags

streaming-data-pipelinesdata-pipelinesreal-timestreaming-analyticsstreaming-data-processingdistributed-systemscloud-nativestream-processing-engineevent-driven-architecturedata-analyticsdata-flowstatefulrustwebassemblystreaming-dataserverlessstream-processingdata-integrationstreaming

Frequently asked questions

How does Fluvio differ from Apache Kafka?

Fluvio is written in Rust for lower resource usage and includes native WebAssembly-based stream processing. Kafka requires separate frameworks like Kafka Streams or Flink for transformations.

Can I run Fluvio in production?

Yes. Deploy locally via fvm or use InfinyOn Cloud for managed hosting. The Apache-2.0 license permits commercial use, and the project powers InfinyOn's cloud platform.

What languages can I use to build connectors and Smart Modules?

Smart Modules compile to WebAssembly, supporting Rust primarily. Connectors use the CDK, also Rust-based. Client libraries exist for Rust, Python, JavaScript, Go, Java, and Elixir.

Does Fluvio support exactly-once semantics?

The README does not specify delivery guarantees. Consult the official architecture documentation or community forums for details on consistency models.

How do I migrate from Kafka to Fluvio?

Fluvio includes native Kafka inbound and outbound connectors, enabling gradual migration by bridging topics between systems while you rebuild producers and consumers.

Project at a glance

Active
Stars
5,146
Watchers
5,146
Forks
522
LicenseApache-2.0
Repo age6 years old
Last commit2 weeks ago
Primary languageRust

Last synced yesterday