Framework ETL de Python para procesamiento de streams, analítica en tiempo real, pipelines de LLM y RAG, impulsado por un motor Rust.
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
Clona el repositorio
git clone https://github.com/arkflow-rs/arkflow.git - 2
Entra en el directorio del proyecto
cd arkflow - 3
Compila el proyecto en modo release
cargo build --release - 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
Un procesador de flujos escrito en Go que conecta brokers de mensajes, servicios en la nube y bases de datos, y transforma los payloads mediante un lenguaje de mapeo.
Framework de pipelines de datos incremental en Python con un núcleo en Rust que mantiene sincronizados índices vectoriales y grafos de conocimiento con fuentes cambiantes para agentes de IA y aplicaciones RAG.
Pipeline de observabilidad de alto rendimiento escrito en Rust que recopila, transforma y enruta logs y métricas a cualquier destino.
Almacén de datos de código abierto escrito en Rust que combina análisis SQL, búsqueda vectorial y de texto completo, y entornos aislados para UDF de Python sobre almacenamiento compatible con S3.
Almacén OLAP distribuido en tiempo real para analizar con baja latencia datos de streaming y por lotes, con ingesta desde Kafka y S3.