Repolode
arkflow-rs

arkflow-rs/arkflow

Motor de procesamiento de streams en Rust que ejecuta SQL, UDF de Python y pasos de ML/LLM sobre datos en tiempo real de Kafka, MQTT, NATS y otras fuentes.

Estrellas
1,314
Forks
47
Issues abiertos
29
Último commit
hace 2 horas

¿Qué es?

ArkFlow es un motor de procesamiento de streams escrito en Rust y basado en el runtime asíncrono Tokio. Los streams se definen en YAML, con una entrada, una canalización de procesamiento, una salida y una salida de error opcional para los mensajes que fallen. Entre las entradas se incluyen Kafka, MQTT, NATS, Pulsar, Redis, WebSocket, HTTP, archivos y bases de datos SQL; entre las salidas, Kafka, MongoDB, InfluxDB, bases de datos SQL y almacenes vectoriales como Qdrant, Milvus y pgvector.

Los pasos de procesamiento incluyen consultas SQL, funciones definidas por el usuario en Python, transformaciones VRL, conversión de JSON y Protobuf, y procesamiento por lotes. La canalización también incluye procesadores para llamar a API de embeddings y chat compatibles con OpenAI, ejecutar búsquedas vectoriales y enriquecer filas con consultas respaldadas por Redis. De forma predeterminada, la entrega es al menos una vez gracias a la durabilidad WAL por stream; también se puede habilitar la entrega exactamente una vez para destinos transaccionales.

Se puede usar un Hub y una consola web opcionales para supervisar y configurar varios nodos de ArkFlow como una flota.

Funciones clave

  • 01Canalizaciones de streams definidas en YAML, con entrada, procesadores, salida y salida de error
  • 02Pasos de procesamiento con SQL, UDF de Python, VRL y Protobuf
  • 03Conectores para Kafka, MQTT, NATS, Redis, bases de datos SQL y muchos más
  • 04Procesadores de embeddings, LLM y búsqueda vectorial para cargas de trabajo de IA
  • 05Entrega al menos una vez de forma predeterminada mediante WAL por stream

Casos de uso

  • Filtrar y transformar temas de Kafka en tiempo real con SQL
  • Enriquecer un stream de mensajes con embeddings o LLM antes de escribirlo en una base de datos vectorial
  • Ingerir datos de sensores IoT desde MQTT y escribirlos en InfluxDB o SQL
  • Sincronizar eventos de cambios de bases de datos desde temas de Kafka con formato Debezium

Inicio rápido

  1. 1

    Clona el repositorio

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

    Entra en el directorio del proyecto

    cd arkflow
  3. 3

    Compila el proyecto en modo release

    cargo build --release
  4. 4

    Ejecuta ArkFlow con el archivo de configuración

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

Antes de usarlo

  • Se necesita una cadena de herramientas de Rust para compilar desde el código fuente; el README no documenta la instalación mediante un gestor de paquetes.
  • Antes de ejecutar, hay que crear manualmente el archivo de configuración de Quick Start con el nombre config.yaml.

En colecciones

Temas

Preguntas frecuentes

¿Qué es arkflow?
Motor de procesamiento de streams en Rust que ejecuta SQL, UDF de Python y pasos de ML/LLM sobre datos en tiempo real de Kafka, MQTT, NATS y otras fuentes. ArkFlow es un motor de procesamiento de streams escrito en Rust y basado en el runtime asíncrono Tokio. Los streams se definen en YAML, con una entrada, una canalización de procesamiento, una salida y una salida de error opcional para los mensajes que fallen. Entre las entradas se incluyen Kafka, MQTT, NATS, Pulsar, Redis, WebSocket, HTTP, archivos y bases de datos SQL; entre las salidas, Kafka, MongoDB, InfluxDB, bases de datos SQL y almacenes vectoriales como Qdrant, Milvus y pgvector.
¿arkflow es gratuito? ¿Qué licencia tiene?
arkflow es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿arkflow sigue mantenido?
Mantenimiento activo. El último commit de arkflow fue el 22 oct 2026.
¿Para qué puedo usar arkflow?
Filtrar y transformar temas de Kafka en tiempo real con SQL Enriquecer un stream de mensajes con embeddings o LLM antes de escribirlo en una base de datos vectorial Ingerir datos de sensores IoT desde MQTT y escribirlos en InfluxDB o SQL Sincronizar eventos de cambios de bases de datos desde temas de Kafka con formato Debezium
¿Cómo se instala arkflow?
Clona el repositorio: git clone https://github.com/arkflow-rs/arkflow.git Entra en el directorio del proyecto: cd arkflow Compila el proyecto en modo release: cargo build --release Ejecuta ArkFlow con el archivo de configuración: ./target/release/arkflow --config config.yaml
¿Dónde consigo arkflow?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/arkflow-rs/arkflow

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados