Framework ETL em Python para processamento de streams, análises em tempo real, pipelines com LLM e RAG, com tecnologia de um mecanismo em Rust.
arkflow-rs/arkflow
Engine de processamento de streams em Rust que executa SQL, UDFs em Python e etapas de ML/LLM em dados em tempo real de Kafka, MQTT, NATS e outras fontes.
- Estrelas
- 1,314
- Forks
- 47
- Issues abertas
- 29
- Último commit
- há 4 horas
O que é?
O ArkFlow é um engine de processamento de streams escrito em Rust, usando o runtime assíncrono Tokio. Os streams são definidos em YAML, com uma entrada, um pipeline de processamento, uma saída e uma saída de erro opcional para mensagens que falharem. As entradas incluem Kafka, MQTT, NATS, Pulsar, Redis, WebSocket, HTTP, arquivos e bancos de dados SQL; as saídas incluem Kafka, MongoDB, InfluxDB, bancos de dados SQL e bancos vetoriais como Qdrant, Milvus e pgvector.
As etapas de processamento incluem consultas SQL, funções definidas pelo usuário em Python, transformações VRL, conversão de JSON e Protobuf e processamento em lotes. O pipeline também oferece processadores para chamar APIs de embeddings e chat compatíveis com OpenAI, executar buscas vetoriais e enriquecer linhas com consultas a dados armazenados no Redis. Por padrão, a entrega é pelo menos uma vez, com durabilidade via WAL por stream; há suporte opcional a exatamente uma vez para sinks transacionais.
Um Hub e um console web opcionais podem ser usados para monitorar e configurar vários nós do ArkFlow como uma frota.
Recursos principais
- 01Pipelines de streams definidos em YAML, com entrada, processadores, saída e saída de erro
- 02Etapas de processamento com SQL, UDFs em Python, VRL e Protobuf
- 03Conectores para Kafka, MQTT, NATS, Redis, bancos de dados SQL e muitos outros
- 04Processadores de embeddings, LLM e busca vetorial para cargas de trabalho de IA
- 05Entrega pelo menos uma vez por padrão, via WAL por stream
Casos de uso
- Filtrar e transformar tópicos Kafka em tempo real com SQL
- Executar enriquecimento com embeddings ou LLM em um stream de mensagens antes de gravá-lo em um banco de dados vetorial
- Ingerir dados de sensores IoT via MQTT e gravá-los no InfluxDB ou em um banco de dados SQL
- Sincronizar eventos de alteração de banco de dados provenientes de tópicos Kafka no formato Debezium
Início rápido
- 1
Clone o repositório
git clone https://github.com/arkflow-rs/arkflow.git - 2
Entre no diretório do projeto
cd arkflow - 3
Compile o projeto no modo release
cargo build --release - 4
Execute o ArkFlow com o arquivo de configuração
./target/release/arkflow --config config.yaml
Antes de usar
- É necessário ter a toolchain do Rust para compilar a partir do código-fonte; o README não documenta a instalação por um gerenciador de pacotes.
- Antes de executar, é preciso criar manualmente o arquivo de configuração do Quick Start com o nome config.yaml.
Em coleções
Tópicos
Perguntas frequentes
- O que é arkflow?
- Engine de processamento de streams em Rust que executa SQL, UDFs em Python e etapas de ML/LLM em dados em tempo real de Kafka, MQTT, NATS e outras fontes. O ArkFlow é um engine de processamento de streams escrito em Rust, usando o runtime assíncrono Tokio. Os streams são definidos em YAML, com uma entrada, um pipeline de processamento, uma saída e uma saída de erro opcional para mensagens que falharem. As entradas incluem Kafka, MQTT, NATS, Pulsar, Redis, WebSocket, HTTP, arquivos e bancos de dados SQL; as saídas incluem Kafka, MongoDB, InfluxDB, bancos de dados SQL e bancos vetoriais como Qdrant, Milvus e pgvector.
- arkflow é gratuito? Qual é a licença?
- arkflow é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- arkflow ainda é mantido?
- Manutenção ativa. O último commit de arkflow foi em 22 de out. de 2026.
- Para que posso usar arkflow?
- Filtrar e transformar tópicos Kafka em tempo real com SQL Executar enriquecimento com embeddings ou LLM em um stream de mensagens antes de gravá-lo em um banco de dados vetorial Ingerir dados de sensores IoT via MQTT e gravá-los no InfluxDB ou em um banco de dados SQL Sincronizar eventos de alteração de banco de dados provenientes de tópicos Kafka no formato Debezium
- Como instalar arkflow?
- Clone o repositório: git clone https://github.com/arkflow-rs/arkflow.git Entre no diretório do projeto: cd arkflow Compile o projeto no modo release: cargo build --release Execute o ArkFlow com o arquivo de configuração: ./target/release/arkflow --config config.yaml
- Onde consigo arkflow?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/arkflow-rs/arkflow
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Processador de streams em Go que conecta brokers de mensagens, serviços de nuvem e bancos de dados, com uma linguagem de mapeamento para transformar payloads entre eles.
Framework de pipelines de dados incremental em Python, com núcleo em Rust, que mantém índices vetoriais e grafos de conhecimento sincronizados com fontes em constante mudança para agentes de IA e aplicações RAG.
Um pipeline de dados de observabilidade de alto desempenho, escrito em Rust, que coleta, transforma e encaminha logs e métricas para qualquer destino.
Data warehouse open source escrito em Rust que reúne analytics em SQL, busca vetorial e full-text e sandboxes para UDFs em Python em storage compatível com S3.
Um datastore OLAP distribuído em tempo real para análises de baixa latência sobre dados de streaming e em lote, com ingestão do Kafka e do S3.