arkflow-rs/arkflow

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

ArkFlow – 基于 Rust 的流处理引擎,支持 AI 扩展

简介

  • ArkFlow 是一个用 Rust 编写、基于 Tokio 异步运行时构建的开源高性能流处理平台。
  • 它允许您从多种来源摄取数据,使用丰富的处理器集(SQL、Python UDF、Protobuf、VRL 等)进行转换,并将结果写入各种接收器。
  • ArkFlow 的独特之处在于一流的 AI 处理器:您可以在流处理管道中调用与 OpenAI 兼容的 LLM API、生成嵌入、执行向量相似性搜索(Qdrant、Milvus、pgvector)。

主要功能

类别 亮点
性能 Rust + Tokio → 低延迟、高吞吐量;通过每流 WAL 实现可选的 exactly-once 传递。
输入 Kafka、MQTT、HTTP、文件(CSV/JSON/Parquet/Avro/Arrow)、SQL 数据库、NATS、Pulsar、Redis、WebSocket、Modbus、内存、合成生成器、复合多输入流。
处理 内置 JSON↔Arrow 转换、SQL 查询、Protobuf 编解码器、批处理窗口、VRL、Python UDF、嵌入(OpenAI 兼容)、LLM 聊天补全、向量搜索(Qdrant、Milvus、pgvector)、带缓存的查找增强。
输出 Kafka、MQTT、HTTP、InfluxDB、MongoDB、NATS、Pulsar、Redis、SQL 数据库、stdout、丢弃、Qdrant、pgvector、Milvus。
缓冲区和窗口 内存缓冲区、会话窗口、滚动窗口(事件时间),以及已弃用的滑动窗口占位符。
编解码器 JSON、Protobuf、Debezium CDC JSON、Confluent Schema Registry(Avro/Protobuf)。
控制平面 用于管理 ArkFlow 节点集群的可选 Hub 和 Web 控制台。
可扩展性 模块化架构;可将新的输入、输出、处理器或缓冲区作为插件添加。

典型用例

  • 实时 IoT 遥测数据采集 → 使用 Python UDF 进行增强 → 通过 LLM 提示进行异常检测。
  • 流式日志数据 → SQL 过滤 → 生成嵌入 → 在 Qdrant 中进行最近邻搜索以发出相似性警报。
  • 数据库的 CDC(变更数据捕获) → Debezium JSON 解码 → 转换 → 写入下游 Kafka 主题。
  • 为负载测试管道生成高频合成数据。

快速开始

# 克隆并构建(需要 Rust 工具链)
git clone https://github.com/arkflow-rs/arkflow.git
cd arkflow
cargo build --release

# 运行快速测试配置
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

该示例生成合成传感器记录,将 JSON 转换为 Arrow,使用 SQL 进行过滤,并输出匹配的行。

文档与社区

许可证

  • Apache License 2.0。

总结 ArkFlow 将 Rust 的速度和安全性、灵活的声明式流处理模型以及内置的 AI/ML 运算符相结合,使其成为需要实时数据管道且能够即时运行推理、生成嵌入或执行向量搜索的开发者的可靠选择。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目