Repolode
warpstreamlabs

warpstreamlabs/bento

用 Go 编写的流处理器,连接消息队列、云服务和数据库,并支持在中间对数据进行转换。

Star
2,168
Fork
236
未关闭 Issue
153
最近提交
6分钟前

这是什么?

Bento 是一个用 Go 编写的流处理器,可以从 Kafka、NATS、Redis Streams、AWS 与 GCP 服务以及 SQL 数据库等来源读取数据,经过一系列处理器处理后写入目标端。流水线使用 YAML 声明,简单的场景只需一个配置文件即可运行。

处理阶段支持数据补全、转换和过滤,并可使用内置的映射语言 Bloblang 重构消息内容。Bento 采用进程内事务模型,不依赖磁盘持久化状态,在对接至少一次投递的源和目标时,力求在进程崩溃等故障下仍保证至少一次投递。它以静态二进制、Docker 镜像或无服务器函数的形式部署。

项目提供存活与就绪检查接口,可将指标输出到 Statsd、Prometheus 等系统,并支持 OpenTelemetry 链路追踪。自定义组件可以通过 Go 插件方式扩展。本仓库是原项目在许可证变更之前的一个分支。

核心功能

  • 01可作为输入或输出对接 Kafka、NATS、Redis、AWS、GCP、Azure 及 SQL 数据库等。
  • 02使用 YAML 声明流水线,并内置映射语言 Bloblang 进行数据转换。
  • 03在源和目标支持的前提下,无需磁盘状态即可实现至少一次投递。
  • 04提供静态二进制、Docker 镜像和无服务器函数三种部署方式。
  • 05提供 /ping 与 /ready 健康检查接口,并支持 Prometheus、Statsd 和 OpenTelemetry。
  • 06支持用 Go 编写自定义插件来扩展组件。

适用场景

  • 将 Kafka 或 NATS 中的事件经轻量转换后写入数据库或搜索索引。
  • 在消息进入下游服务之前进行数据补全或过滤。
  • 在 AWS Kinesis、GCP Pub/Sub 等云服务与其他消息系统之间做桥接。
  • 在容器中运行轻量流水线,而无需部署更重的流处理平台。

快速上手

  1. 1

    拉取 Docker 镜像

    docker pull ghcr.io/warpstreamlabs/bento
  2. 2

    使用 Docker 运行 Bento,并挂载你的配置文件

    docker run --rm -v /path/to/your/config.yaml:/bento.yaml ghcr.io/warpstreamlabs/bento

使用前须知

  • README 称发布流程仍在完善中,目前还没有标准的二进制安装方式。
  • 项目元数据中未明确标注许可证。
  • 部分组件(如 zmq4)需要外部 C 库和特殊的构建标签。

标签

常见问题

bento 是什么?
用 Go 编写的流处理器,连接消息队列、云服务和数据库,并支持在中间对数据进行转换。 Bento 是一个用 Go 编写的流处理器,可以从 Kafka、NATS、Redis Streams、AWS 与 GCP 服务以及 SQL 数据库等来源读取数据,经过一系列处理器处理后写入目标端。流水线使用 YAML 声明,简单的场景只需一个配置文件即可运行。
bento 可以免费使用吗?用的什么许可证?
bento 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
bento 还在维护吗?
活跃维护中。bento 最近一次提交是在 2026年10月22日。
bento 适合用来做什么?
将 Kafka 或 NATS 中的事件经轻量转换后写入数据库或搜索索引。 在消息进入下游服务之前进行数据补全或过滤。 在 AWS Kinesis、GCP Pub/Sub 等云服务与其他消息系统之间做桥接。 在容器中运行轻量流水线,而无需部署更重的流处理平台。
bento 怎么安装和运行?
拉取 Docker 镜像: docker pull ghcr.io/warpstreamlabs/bento 使用 Docker 运行 Bento,并挂载你的配置文件: docker run --rm -v /path/to/your/config.yaml:/bento.yaml ghcr.io/warpstreamlabs/bento
在哪里获取 bento?
源代码和安装说明在 GitHub 上:https://github.com/warpstreamlabs/bento

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目