arkflow-rs/arkflow

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

ArkFlow – AI 확장 기능을 갖춘 Rust 기반 스트림 처리 엔진

개요

  • 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 및 웹 콘솔.
확장성 모듈식 아키텍처. 새로운 입력, 출력, 프로세서 또는 버퍼를 플러그인으로 추가할 수 있습니다.

일반적인 사용 사례

  • 실시간 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 연산자와 결합하여, 실시간 데이터 파이프라인에서 추론, 임베딩 생성 또는 벡터 검색을 즉시 수행해야 하는 개발자에게 견고한 선택지를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트