Repolode
warpstreamlabs

warpstreamlabs/bento

メッセージブローカー、クラウドサービス、データベースをつなぎ、間でペイロードを変換するマッピング言語を備えたGo製ストリームプロセッサ。

スター
2,168
フォーク
236
未解決の Issue
153
最終コミット
20 分前

これは何?

BentoはGoで書かれたストリームプロセッサです。Kafka、NATS、Redis Streams、AWSやGCPのサービス、SQLデータベースなどのソースからデータを読み込み、プロセッサのチェーンを通して処理した後、シンクに書き込みます。パイプラインはYAMLで宣言するため、基本的な構成なら1つの設定ファイルにまとめられます。

処理ステージではデータのエンリッチ、変換、フィルタリングを行えます。ペイロードの再構成には、Bento組み込みのマッピング言語Bloblangを使います。配信にはディスク上に状態を保持しないプロセス内トランザクションモデルを採用しており、ソースとシンクが少なくとも1回の配信に対応していれば、クラッシュ後も少なくとも1回の配信を維持することを目指します。Bentoは静的バイナリ、Dockerイメージ、またはサーバーレス関数として提供されています。

livenessとreadinessのエンドポイントを公開し、Statsd、Prometheusなどのバックエンドにメトリクスを送信するほか、OpenTelemetryのトレースにも対応しています。Goプラグインとしてカスタムコンポーネントを追加できます。このリポジトリは、ライセンス変更前に元のプロジェクトからフォークされたものです。

主な機能

  • 01Kafka、NATS、Redis、AWS、GCP、Azure、SQLデータベースなどを入出力先として接続できます。
  • 02組み込みマッピング言語Bloblangを使った宣言的なYAMLパイプライン。
  • 03ソースとシンクが対応していれば、ディスク上に状態を保持せず、少なくとも1回の配信を実現します。
  • 04静的バイナリ、Dockerイメージ、またはサーバーレス関数として提供されています。
  • 05/pingと/readyのヘルスエンドポイントに加え、Prometheus、Statsd、OpenTelemetryによる可観測性を提供します。
  • 06Goプラグインとして記述したカスタムコンポーネントに対応しています。

ユースケース

  • KafkaやNATSからデータベースまたは検索インデックスへ、簡単な変換を加えながらイベントを移す。
  • 下流サービスに届く前に、メッセージストリームをエンリッチまたはフィルタリングする。
  • AWS KinesisやGCP Pub/Subなどのクラウドサービスを、他のブローカーと接続する。
  • 大規模なストリーム処理プラットフォームを運用せずに、軽量なコンテナ化パイプラインを実行する。

クイックスタート

  1. 1

    Docker イメージを pull する

    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で宣言するため、基本的な構成なら1つの設定ファイルにまとめられます。
bento は無料で使えますか?ライセンスは?
bento は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
bento は今もメンテナンスされていますか?
活発にメンテナンス中。bento の最終コミットは 2026年10月22日 です。
bento は何に使えますか?
KafkaやNATSからデータベースまたは検索インデックスへ、簡単な変換を加えながらイベントを移す。 下流サービスに届く前に、メッセージストリームをエンリッチまたはフィルタリングする。 AWS KinesisやGCP Pub/Subなどのクラウドサービスを、他のブローカーと接続する。 大規模なストリーム処理プラットフォームを運用せずに、軽量なコンテナ化パイプラインを実行する。
bento のインストール方法は?
Docker イメージを pull する: 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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト