arkflow-rs/arkflow

High performance Rust stream processing engine seamlessly integrates AI capabilities, providing powerful real-time data processing and intelligent analysis.

ArkFlow – Rust‑based Stream Processing Engine with AI Extensions

What it is

  • ArkFlow is an open‑source, high‑performance stream‑processing platform written in Rust and built on the Tokio async runtime.
  • It lets you ingest data from many sources, transform it with a rich set of processors (SQL, Python UDFs, Protobuf, VRL, etc.), and write the results to a variety of sinks.
  • Unique to ArkFlow are first‑class AI processors: you can call OpenAI‑compatible LLM APIs, generate embeddings, and perform vector similarity searches (Qdrant, Milvus, pgvector) as part of a streaming pipeline.

Key capabilities

Category Highlights
Performance Rust + Tokio → low‑latency, high‑throughput; optional exactly‑once delivery via per‑stream WAL.
Inputs Kafka, MQTT, HTTP, files (CSV/JSON/Parquet/Avro/Arrow), SQL databases, NATS, Pulsar, Redis, WebSocket, Modbus, in‑memory, synthetic generator, and composite multi‑input streams.
Processing Built‑in JSON↔Arrow conversion, SQL queries, Protobuf codecs, batch windows, VRL, Python UDFs, Embedding (OpenAI‑compatible), LLM chat completions, vector search (Qdrant, Milvus, pgvector), lookup enrichment with caching.
Outputs Kafka, MQTT, HTTP, InfluxDB, MongoDB, NATS, Pulsar, Redis, SQL databases, stdout, drop, Qdrant, pgvector, Milvus.
Buffers & Windows Memory buffer, session window, tumbling window (event‑time), plus deprecated sliding‑window placeholder.
Codecs JSON, Protobuf, Debezium CDC JSON, Confluent Schema Registry (Avro/Protobuf).
Control plane Optional Hub and web console for managing fleets of ArkFlow nodes.
Extensibility Modular architecture; new inputs, outputs, processors, or buffers can be added as plugins.

Typical use cases

  • Real‑time IoT telemetry ingestion → enrichment with Python UDFs → anomaly detection via LLM prompts.
  • Streaming log data → SQL filtering → embedding generation → nearest‑neighbor search in Qdrant for similarity alerts.
  • CDC (Change Data Capture) from databases → Debezium JSON decoding → transformation → write to a downstream Kafka topic.
  • High‑frequency synthetic data generation for load testing pipelines.

Getting started

# Clone and build (requires Rust toolchain)
git clone https://github.com/arkflow-rs/arkflow.git
cd arkflow
cargo build --release

# Run a quick test configuration
cat > config.yaml <<'EOF'
logging:
  level: info
streams:
  - input:
      type: "generate"
      context: '{ "timestamp": 1625000000000, "value": 10, "sensor": "temp_1" }'
      interval: 1s
      batch_size: 10
    pipeline:
      thread_num: 4
      processors:
        - type: "json_to_arrow"
        - type: "sql"
          query: "SELECT * FROM flow WHERE value >= 10"
    output:
      type: "stdout"
    error_output:
      type: "stdout"
EOF

./target/release/arkflow --config config.yaml

The example generates synthetic sensor records, converts JSON to Arrow, filters with SQL, and prints matching rows.

Documentation & community

License

  • Apache License 2.0.

Bottom line ArkFlow combines the speed and safety of Rust with a flexible, declarative streaming model and built‑in AI/ML operators, making it a solid choice for developers who need real‑time data pipelines that can run inference, generate embeddings, or perform vector search on the fly.

Related

  • Project
  • Project
  • Project
  • Project
  • Project