Um pipeline de dados de observabilidade de alto desempenho, escrito em Rust, que coleta, transforma e encaminha logs e métricas para qualquer destino.
warpstreamlabs/bento
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.
- Estrelas
- 2,168
- Forks
- 236
- Issues abertas
- 153
- Último commit
- há 20 minutos
O que é?
Bento é um processador de streams escrito em Go. Ele lê dados de fontes como Kafka, NATS, Redis streams, serviços da AWS e do GCP e bancos de dados SQL, passa esses dados por uma cadeia de processadores e os grava em destinos. Os pipelines são declarados em YAML, então uma configuração básica pode caber em um único arquivo de configuração.
As etapas de processamento incluem enriquecimento, transformação e filtragem; os payloads são reestruturados com Bloblang, a linguagem de mapeamento integrada do Bento. A entrega é feita por um modelo de transações em processo, sem estado em disco. Assim, quando as fontes e os destinos oferecem entrega pelo menos uma vez, o Bento busca preservar esse modelo de entrega mesmo em caso de falhas. O Bento é distribuído como binário estático, imagem Docker ou função serverless.
O Bento expõe endpoints de liveness e readiness e envia métricas para Statsd, Prometheus e outros backends, além de traces do OpenTelemetry. É possível adicionar componentes personalizados como plugins em Go. Este repositório é um fork do projeto original, criado antes da mudança de licença.
Recursos principais
- 01Conecta-se a Kafka, NATS, Redis, AWS, GCP, Azure, bancos de dados SQL e outros serviços como fontes e destinos.
- 02Pipelines declarativos em YAML com a linguagem de mapeamento integrada Bloblang.
- 03Oferece entrega pelo menos uma vez sem estado em disco quando as fontes e os destinos dão suporte a esse modelo.
- 04É distribuído como binário estático, imagem Docker ou função serverless.
- 05Oferece endpoints de saúde /ping e /ready, além de observabilidade com Prometheus, Statsd e OpenTelemetry.
- 06Dá suporte a componentes personalizados escritos como plugins em Go.
Casos de uso
- Mover eventos do Kafka ou NATS para um banco de dados ou índice de busca com transformações simples.
- Enriquecer ou filtrar um stream de mensagens antes que ele chegue aos serviços downstream.
- Conectar serviços de nuvem, como AWS Kinesis ou GCP Pub/Sub, a outros brokers.
- Executar um pipeline leve em contêiner sem operar uma plataforma de streams mais robusta.
Início rápido
- 1
Baixe a imagem do Docker
docker pull ghcr.io/warpstreamlabs/bento - 2
Execute o Bento no Docker com o arquivo de configuração montado
docker run --rm -v /path/to/your/config.yaml:/bento.yaml ghcr.io/warpstreamlabs/bento
Antes de usar
- O README informa que o processo de lançamento ainda está em andamento, portanto ainda não há uma instalação binária padrão.
- A licença não está claramente identificada nos metadados do projeto.
- Alguns componentes precisam de bibliotecas C externas e de uma tag de build especial, como zmq4.
Tópicos
Perguntas frequentes
- O que é bento?
- 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. Bento é um processador de streams escrito em Go. Ele lê dados de fontes como Kafka, NATS, Redis streams, serviços da AWS e do GCP e bancos de dados SQL, passa esses dados por uma cadeia de processadores e os grava em destinos. Os pipelines são declarados em YAML, então uma configuração básica pode caber em um único arquivo de configuração.
- bento é gratuito? Qual é a licença?
- bento é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- bento ainda é mantido?
- Manutenção ativa. O último commit de bento foi em 22 de out. de 2026.
- Para que posso usar bento?
- Mover eventos do Kafka ou NATS para um banco de dados ou índice de busca com transformações simples. Enriquecer ou filtrar um stream de mensagens antes que ele chegue aos serviços downstream. Conectar serviços de nuvem, como AWS Kinesis ou GCP Pub/Sub, a outros brokers. Executar um pipeline leve em contêiner sem operar uma plataforma de streams mais robusta.
- Como instalar bento?
- Baixe a imagem do Docker: docker pull ghcr.io/warpstreamlabs/bento Execute o Bento no Docker com o arquivo de configuração montado: docker run --rm -v /path/to/your/config.yaml:/bento.yaml ghcr.io/warpstreamlabs/bento
- Onde consigo bento?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/warpstreamlabs/bento
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
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.
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.
Plataforma open source de movimentação de dados para pipelines ELT, que leva dados de APIs, bancos de dados e arquivos para data warehouses, data lakes e aplicações de IA.
CLI e pipeline de dados que sincronizam metadados de infraestrutura em nuvem e SaaS com um data warehouse para consultas SQL, inventário de ativos e análise de segurança.
Apache NiFi automatiza, roteia e monitora fluxos de dados entre origens e destinos, com gerenciamento pela interface do navegador.