A real-time distributed OLAP datastore for low-latency analytics over streaming and batch data, ingesting from Kafka and S3.
ArroyoSystems/arroyo
A distributed stream processing engine written in Rust that runs stateful SQL pipelines over real-time data streams.
Open-source alternative to:Apache Flink
- Stars
- 5,062
- Forks
- 380
- Open issues
- 130
- Last commit
- yesterday
What is it?
Arroyo is a stream processing engine that lets you write SQL queries over continuously arriving data and get results as soon as they are available, rather than waiting for a batch job to finish. It supports stateful operations such as windows and joins, and checkpoints state so pipelines can recover from failures and be rescheduled.
Arroyo ships as a single binary. You can start a local cluster with the CLI or run it in Docker, then manage pipelines through a web UI listening on port 5115. A wide range of connectors is available, including Kafka and Iceberg, and the project is designed to run in cloud environments with seamless scaling.
The project is aimed at teams that want real-time analytics or data ingestion without deep streaming expertise, since pipeline APIs are separated from the internal implementation. Cloudflare also offers a managed version of Arroyo as Cloudflare Pipelines, currently for stateless pipelines writing to R2.
Key features
- 01Write streaming pipelines in SQL
- 02Stateful windows and joins
- 03Checkpointing for fault tolerance and recovery
- 04Event-time processing based on the Dataflow model
- 05Connectors including Kafka and Iceberg
- 06Single binary with CLI and web UI
Use cases
- Detecting fraud or security incidents in live event streams
- Building real-time product or business dashboards
- Ingesting streaming data into a data warehouse or data lake
- Generating real-time features for machine learning models
Quick start
- 1
Install on macOS with Homebrew
brew install arroyosystems/tap/arroyo - 2
Start a local cluster
arroyo cluster - 3
Open the Web UI at http://localhost:5115 once the cluster is running
Things to know
- Self-hosting requires running the Arroyo cluster and its components yourself.
- Stateful pipelines are not yet available on the managed Cloudflare Pipelines service, which currently supports only stateless pipelines into R2.
In collections
Topics
FAQ
- What is arroyo?
- A distributed stream processing engine written in Rust that runs stateful SQL pipelines over real-time data streams. Arroyo is a stream processing engine that lets you write SQL queries over continuously arriving data and get results as soon as they are available, rather than waiting for a batch job to finish. It supports stateful operations such as windows and joins, and checkpoints state so pipelines can recover from failures and be rescheduled.
- Is arroyo free to use? What license does it have?
- arroyo is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is arroyo still maintained?
- Actively maintained. The last commit to arroyo was on Oct 23, 2026.
- What can I use arroyo for?
- Detecting fraud or security incidents in live event streams Building real-time product or business dashboards Ingesting streaming data into a data warehouse or data lake Generating real-time features for machine learning models
- How do I install arroyo?
- Install on macOS with Homebrew: brew install arroyosystems/tap/arroyo Start a local cluster: arroyo cluster Open the Web UI at http://localhost:5115 once the cluster is running
- Where can I get arroyo?
- The source code and installation instructions are on GitHub: https://github.com/ArroyoSystems/arroyo
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Rust stream processing engine that runs SQL, Python UDFs and ML/LLM steps over real-time data from Kafka, MQTT, NATS and other sources.
Apache Flink is an open source framework for stateful stream and batch data processing, with Java, Scala, Python and SQL APIs.
Python ETL framework for stream processing, real-time analytics, LLM pipelines and RAG, powered by a Rust engine.
A Kubernetes operator that runs and manages Apache Kafka clusters on Kubernetes and OpenShift, including Kafka Connect and Kafka Streams.
A Kafka API-compatible streaming data platform written in C++ that runs without ZooKeeper or the JVM.