Python ETL framework for stream processing, real-time analytics, LLM pipelines and RAG, powered by a Rust engine.
arkflow-rs/arkflow
Rust stream processing engine that runs SQL, Python UDFs and ML/LLM steps over real-time data from Kafka, MQTT, NATS and other sources.
- Stars
- 1,314
- Forks
- 47
- Open issues
- 29
- Last commit
- 4 hours ago
What is it?
ArkFlow is a stream processing engine written in Rust on the Tokio async runtime. Streams are defined in YAML, with an input, a processing pipeline, an output and an optional error output for failed messages. Inputs include Kafka, MQTT, NATS, Pulsar, Redis, WebSocket, HTTP, files and SQL databases, and outputs include Kafka, MongoDB, InfluxDB, SQL databases and vector stores such as Qdrant, Milvus and pgvector.
Processing steps include SQL queries, Python user-defined functions, VRL transformations, JSON and Protobuf conversion, and batching. The pipeline also has processors for calling OpenAI-compatible embedding and chat APIs, running vector searches, and enriching rows with lookups backed by Redis. Delivery is at-least-once by default through per-stream WAL durability, with optional exactly-once for transactional sinks.
An optional Hub and web console can be used to monitor and configure several ArkFlow nodes as a fleet.
Key features
- 01Stream pipelines defined in YAML with input, processors, output and error output
- 02SQL, Python UDF, VRL and Protobuf processing steps
- 03Connectors for Kafka, MQTT, NATS, Redis, SQL databases and many more
- 04Embedding, LLM and vector search processors for AI workloads
- 05At-least-once delivery by default via per-stream WAL
Use cases
- Filtering and transforming Kafka topics in real time with SQL
- Running embedding or LLM enrichment over a message stream before writing to a vector database
- Ingesting IoT sensor data from MQTT and writing it to InfluxDB or SQL
- Syncing database change events from Debezium-formatted Kafka topics
Quick start
- 1
Clone the repository
git clone https://github.com/arkflow-rs/arkflow.git - 2
Enter the project directory
cd arkflow - 3
Build the project in release mode
cargo build --release - 4
Run ArkFlow with the config file
./target/release/arkflow --config config.yaml
Things to know
- Requires a Rust toolchain to build from source; no package-manager install is documented in the README.
- The Quick Start config must be created by hand as config.yaml before running.
In collections
Topics
FAQ
- What is arkflow?
- Rust stream processing engine that runs SQL, Python UDFs and ML/LLM steps over real-time data from Kafka, MQTT, NATS and other sources. ArkFlow is a stream processing engine written in Rust on the Tokio async runtime. Streams are defined in YAML, with an input, a processing pipeline, an output and an optional error output for failed messages. Inputs include Kafka, MQTT, NATS, Pulsar, Redis, WebSocket, HTTP, files and SQL databases, and outputs include Kafka, MongoDB, InfluxDB, SQL databases and vector stores such as Qdrant, Milvus and pgvector.
- Is arkflow free to use? What license does it have?
- arkflow is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is arkflow still maintained?
- Actively maintained. The last commit to arkflow was on Oct 22, 2026.
- What can I use arkflow for?
- Filtering and transforming Kafka topics in real time with SQL Running embedding or LLM enrichment over a message stream before writing to a vector database Ingesting IoT sensor data from MQTT and writing it to InfluxDB or SQL Syncing database change events from Debezium-formatted Kafka topics
- How do I install arkflow?
- Clone the repository: git clone https://github.com/arkflow-rs/arkflow.git Enter the project directory: cd arkflow Build the project in release mode: cargo build --release Run ArkFlow with the config file: ./target/release/arkflow --config config.yaml
- Where can I get arkflow?
- The source code and installation instructions are on GitHub: https://github.com/arkflow-rs/arkflow
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Go stream processor that connects message brokers, cloud services and databases, with a mapping language for transforming payloads in between.
Incremental data pipeline framework in Python with a Rust core that keeps vector indexes and knowledge graphs in sync with changing sources for AI agents and RAG apps.
A high-performance observability data pipeline in Rust that collects, transforms, and routes logs and metrics to any destination.
Open-source data warehouse written in Rust, combining SQL analytics, vector and full-text search, and Python UDF sandboxes on S3-compatible storage.
A real-time distributed OLAP datastore for low-latency analytics over streaming and batch data, ingesting from Kafka and S3.