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、drop、Qdrant、pgvector、Milvus。
バッファとウィンドウ メモリバッファ、セッションウィンドウ、タンブリングウィンドウ(イベント時間)、廃止予定のスライディングウィンドウプレースホルダ。
コーデック JSON、Protobuf、Debezium CDC JSON、Confluent Schema Registry(Avro/Protobuf)。
コントロールプレーン ArkFlowノードのフリート管理のためのオプションのHubとWebコンソール。
拡張性 モジュラーアーキテクチャ。新しい入力、出力、プロセッサ、バッファをプラグインとして追加できます。

典型的なユースケース

  • リアルタイムIoTテレメトリの取り込み → Python UDFによるエンリッチメント → LLMプロンプトによる異常検知。
  • ストリーミングログデータ → SQLフィルタリング → 埋め込み生成 → Qdrantでの最近傍検索による類似性アラート。
  • データベースからのCDC(Change Data Capture) → 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オペレーターと組み合わせ、リアルタイムデータパイプラインで推論、埋め込み生成、ベクトル検索を実行する必要がある開発者にとって、堅実な選択肢です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト