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でフィルタリングし、一致する行を出力します。
ドキュメントとコミュニティ
- 公式ドキュメント: https://arkflow-rs.com/docs/(0.5.x紹介を含む)。
- コミュニティDiscord: https://discord.gg/CwKhzb8pux。
- プラグイン例リポジトリ: https://github.com/arkflow-rs/arkflow-plugin-examples。
ライセンス
- Apache License 2.0。
結論 ArkFlowは、Rustの速度と安全性を、柔軟で宣言的なストリーミングモデルと組み込みのAI/MLオペレーターと組み合わせ、リアルタイムデータパイプラインで推論、埋め込み生成、ベクトル検索を実行する必要がある開発者にとって、堅実な選択肢です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト