Repolode
arkflow-rs

arkflow-rs/arkflow

Kafka, MQTT, NATS 등에서 들어오는 실시간 데이터를 대상으로 SQL, Python UDF, ML/LLM 처리를 실행하는 Rust 스트림 처리 엔진입니다.

스타
1,314
포크
47
열린 이슈
29
마지막 커밋
4시간 전

어떤 프로젝트인가요?

ArkFlow는 Tokio 비동기 런타임 기반으로 Rust로 작성된 스트림 처리 엔진입니다. 스트림은 YAML로 정의하며, 입력, 처리 파이프라인, 출력과 메시지 처리 실패 시 사용할 선택적 오류 출력을 지정합니다. 입력 소스로는 Kafka, MQTT, NATS, Pulsar, Redis, WebSocket, HTTP, 파일, SQL 데이터베이스를 지원하고, 출력 대상으로는 Kafka, MongoDB, InfluxDB, SQL 데이터베이스, Qdrant, Milvus, pgvector 같은 벡터 저장소를 지원합니다.

처리 단계에는 SQL 쿼리, Python 사용자 정의 함수, VRL 변환, JSON 및 Protobuf 변환, 배치 처리가 포함됩니다. 파이프라인에는 OpenAI 호환 임베딩 및 채팅 API 호출, 벡터 검색 실행, Redis를 기반으로 조회해 행을 보강하는 프로세서도 있습니다. 기본적으로 스트림별 WAL 내구성을 통해 최소 한 번(at-least-once) 전달을 보장하며, 트랜잭션 싱크에서는 선택적으로 정확히 한 번(exactly-once) 전달을 지원합니다.

선택 사항인 Hub와 웹 콘솔을 사용하면 여러 ArkFlow 노드를 하나의 플릿으로 모니터링하고 구성할 수 있습니다.

핵심 기능

  • 01입력, 프로세서, 출력, 오류 출력을 YAML로 정의하는 스트림 파이프라인
  • 02SQL, Python UDF, VRL, Protobuf 처리 단계
  • 03Kafka, MQTT, NATS, Redis, SQL 데이터베이스 등 다양한 커넥터
  • 04AI 워크로드용 임베딩, LLM, 벡터 검색 프로세서
  • 05스트림별 WAL을 통해 기본적으로 최소 한 번 전달

활용 사례

  • SQL을 사용해 Kafka 토픽을 실시간으로 필터링하고 변환
  • 메시지 스트림에 임베딩 또는 LLM 기반 데이터 보강을 수행한 뒤 벡터 데이터베이스에 기록
  • MQTT에서 IoT 센서 데이터를 수집해 InfluxDB 또는 SQL에 기록
  • Debezium 형식의 Kafka 토픽에서 데이터베이스 변경 이벤트 동기화

빠른 시작

  1. 1

    저장소를 클론합니다

    git clone https://github.com/arkflow-rs/arkflow.git
  2. 2

    프로젝트 디렉터리로 이동합니다

    cd arkflow
  3. 3

    release 모드로 프로젝트를 빌드합니다

    cargo build --release
  4. 4

    설정 파일을 지정해 ArkFlow를 실행합니다

    ./target/release/arkflow --config config.yaml

사용 전 알아둘 점

  • 소스에서 빌드하려면 Rust 툴체인이 필요합니다. README에는 패키지 관리자를 통한 설치 방법이 안내되어 있지 않습니다.
  • 실행하기 전에 Quick Start 설정 파일을 config.yaml로 직접 만들어야 합니다.

포함된 컬렉션

토픽

자주 묻는 질문

arkflow은(는) 무엇인가요?
Kafka, MQTT, NATS 등에서 들어오는 실시간 데이터를 대상으로 SQL, Python UDF, ML/LLM 처리를 실행하는 Rust 스트림 처리 엔진입니다. ArkFlow는 Tokio 비동기 런타임 기반으로 Rust로 작성된 스트림 처리 엔진입니다. 스트림은 YAML로 정의하며, 입력, 처리 파이프라인, 출력과 메시지 처리 실패 시 사용할 선택적 오류 출력을 지정합니다. 입력 소스로는 Kafka, MQTT, NATS, Pulsar, Redis, WebSocket, HTTP, 파일, SQL 데이터베이스를 지원하고, 출력 대상으로는 Kafka, MongoDB, InfluxDB, SQL 데이터베이스, Qdrant, Milvus, pgvector 같은 벡터 저장소를 지원합니다.
arkflow은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
arkflow은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
arkflow은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. arkflow의 마지막 커밋은 2026년 10월 22일입니다.
arkflow은(는) 어디에 사용할 수 있나요?
SQL을 사용해 Kafka 토픽을 실시간으로 필터링하고 변환 메시지 스트림에 임베딩 또는 LLM 기반 데이터 보강을 수행한 뒤 벡터 데이터베이스에 기록 MQTT에서 IoT 센서 데이터를 수집해 InfluxDB 또는 SQL에 기록 Debezium 형식의 Kafka 토픽에서 데이터베이스 변경 이벤트 동기화
arkflow는 어떻게 설치하나요?
저장소를 클론합니다: git clone https://github.com/arkflow-rs/arkflow.git 프로젝트 디렉터리로 이동합니다: cd arkflow release 모드로 프로젝트를 빌드합니다: cargo build --release 설정 파일을 지정해 ArkFlow를 실행합니다: ./target/release/arkflow --config config.yaml
arkflow은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/arkflow-rs/arkflow

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트