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로 필터링하고, 일치하는 행을 출력합니다.
문서 및 커뮤니티
- 공식 문서: 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 연산자와 결합하여, 실시간 데이터 파이프라인에서 추론, 임베딩 생성 또는 벡터 검색을 즉시 수행해야 하는 개발자에게 견고한 선택지를 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트