Skip to content

eventflux-io/eventflux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

497 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EventFlux

Build Rust GHCR License

Stream processing engine built in Rust. Write SQL, process events, skip the infrastructure headache.

Why EventFlux

You need to detect patterns in event streams, aggregate metrics, or react to conditions in real-time.

Your options today:

  • Flink — needs Kubernetes, 4GB+ JVM heap, dedicated ops
  • Kafka Streams — needs a Kafka cluster plus Java expertise
  • Build it yourself — months of work

For 100k events/sec, that's overkill.

EventFlux runs as a single binary. No cluster. No JVM. No YAML manifests. Just SQL.

Quick Start

# Docker
docker run -v ./app.sql:/app.sql ghcr.io/eventflux-io/eventflux /app.sql

# Or build from source (--recursive pulls in the vendored SQL parser submodule)
git clone --recursive https://github.com/eventflux-io/eventflux.git
cd eventflux
cargo build --release --features connectors-all
./target/release/run_eventflux app.sql

Already cloned without --recursive? Fetch the submodule before building:

git submodule update --init --recursive

Connector feature flags

The default build is fully minimal — core engine plus the built-in timer source and log sink, no external connectors. Each connector is a cargo feature named after its SQL extension name:

Feature Connector In default build?
kafka Kafka source + sink (needs cmake to build) No
rabbitmq RabbitMQ source + sink No
websocket WebSocket source + sink No
connectors-all All of the above No

Docker images are built with connectors-all, so they include everything. Building from source, pick what you need:

cargo build --release --features rabbitmq          # just RabbitMQ
cargo build --release --features connectors-all    # everything

Prerequisites (for building)

  • Rust 1.85+
  • Protocol Buffer compiler (for gRPC features)
  • Git submodules initialized (see above) — the SQL parser is a vendored submodule

Example

CREATE
STREAM Trades (symbol STRING, price DOUBLE, volume INT);

SELECT symbol, AVG(price), SUM(volume)
FROM Trades WINDOW TUMBLING(1 min)
GROUP BY symbol
INSERT
INTO Summaries;

That's it. No boilerplate. No config files. Just SQL.

How It Compares

EventFlux Flink Kafka Streams
Deployment Single binary Kubernetes cluster Kafka cluster
Memory 50-100MB 4GB+ JVM 1GB+ JVM
Language SQL Java/SQL Java
Setup time Minutes Hours/days Hours
Scale ceiling ~500k eps Millions+ Millions+

Choose EventFlux when you want simple deployment and SQL-first development.

Choose Flink when you need massive scale or batch+stream processing.

Documentation

Full docs at eventflux.io:

IDE Support

EventFlux Studio — VS Code extension with:

  • Syntax highlighting for .eventflux files
  • Schema-aware autocomplete
  • Real-time error diagnostics
  • Query visualization

Install from VS Code marketplace or search "EventFlux Studio" in extensions.

Performance

  • 1M+ events/sec on a single node
  • Sub-millisecond latency
  • Zero GC pauses
  • Starts in milliseconds

When to Use

Good fit: IoT backends, e-commerce tracking, analytics pipelines, SaaS telemetry, fraud detection.

Not a fit: You need 100+ connectors, or you're already running Flink at scale.

Status

Active development. Core CEP works. 1,400+ tests passing. See ROADMAP.md for details.

Contributing

cargo nextest run   # run tests
just lint           # clippy
cargo fmt           # format
just check-all      # all quality checks

See DEV_GUIDE.md for setup.

License

Apache-2.0

About

Rust-native, pattern-first stream processing engine (CEP): filters, joins, enrichment, windows—low latency on-prem & Kubernetes.

Topics

Resources

License

Contributing

Stars

30 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors