Google製の高速な組み込み型Key-Valueストレージライブラリ。文字列のキーと値をソート順で保持します。
dgraph-io/badger
純粋なGoで書かれた組み込み可能な永続キーバリューデータベース。ACIDトランザクションに対応し、SSD向けに設計されています。
- スター
- 15,786
- フォーク
- 1,334
- 未解決の Issue
- 76
- 最終コミット
- 昨日
これは何?
BadgerDBは、すべてGoで書かれた組み込み可能な永続キーバリューストアです。独立したサーバーとしてではなくアプリケーションのプロセス内で動作し、グラフデータベースDgraphのストレージエンジンとしても使われています。
Badgerは、値をキーのインデックスから分離してSSDでの書き込み増幅を抑えるWiscKey設計に基づき、値ログを独立させたLSMツリーを採用しています。シリアライズ可能なスナップショット分離を備えた並行ACIDトランザクション、プレフィックス検索やキー範囲スキャンに対応したイテレーター、キーごとのバージョン管理、TTLをサポートします。Cgoに依存しないため、標準のGoツールチェーンでビルドできます。
オフラインでのバックアップや復元などに使えるCLIも付属しており、Goモジュールとしてgithub.com/dgraph-io/badger/v4から利用できます。
主な機能
- 01Cgoに依存せず、純粋なGoで書かれた組み込み可能なキーバリューストア。
- 02シリアライズ可能なスナップショット分離に対応した並行ACIDトランザクション。
- 03値ログを使ってキーと値を分離し、SSDでの書き込み増幅を抑制。
- 04プレフィックス検索やキー範囲スキャンに対応したイテレーターと、キーごとの複数バージョンへのアクセス。
- 05キーを自動的に期限切れにするTTL機能。
- 06オフラインでのバックアップと復元に使えるコマンドラインツール。
ユースケース
- GoのサービスやCLIツールに、高速なローカル永続ストアを組み込む。
- 分散システムやグラフデータベースのストレージ層として利用する。
- GoアプリケーションでRaftログやメタデータストアを構築する。
- 読み書きのスループットが重要なSSD上で、大規模なデータセットを保存する。
クイックスタート
- 1
Goプロジェクトにライブラリをインストールする
go get github.com/dgraph-io/badger/v4 - 2
チェックアウトしたリポジトリからBadgerコマンドラインツールをインストールする
cd badger go install .
使う前に知っておきたいこと
- Go 1.23以降が必要です。
トピック
よくある質問
- badger とは?
- 純粋なGoで書かれた組み込み可能な永続キーバリューデータベース。ACIDトランザクションに対応し、SSD向けに設計されています。 BadgerDBは、すべてGoで書かれた組み込み可能な永続キーバリューストアです。独立したサーバーとしてではなくアプリケーションのプロセス内で動作し、グラフデータベースDgraphのストレージエンジンとしても使われています。
- badger は無料で使えますか?ライセンスは?
- badger は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- badger は今もメンテナンスされていますか?
- 活発にメンテナンス中。badger の最終コミットは 2026年10月20日 です。
- badger は何に使えますか?
- GoのサービスやCLIツールに、高速なローカル永続ストアを組み込む。 分散システムやグラフデータベースのストレージ層として利用する。 GoアプリケーションでRaftログやメタデータストアを構築する。 読み書きのスループットが重要なSSD上で、大規模なデータセットを保存する。
- badger のインストール方法は?
- Goプロジェクトにライブラリをインストールする: go get github.com/dgraph-io/badger/v4 チェックアウトしたリポジトリからBadgerコマンドラインツールをインストールする: cd badger go install .
- badger はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/dgraph-io/badger
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
RaftコンセンサスとgRPC APIを基盤とする、分散システムの重要データ向けの分散型・高信頼キー・バリューストア。
Goの構造体をデータベースのテーブルに対応付け、関連付け、フック、トランザクション、マイグレーションに対応する多機能ORMです。
バージョン管理されたSQLファイルやGo関数でデータベースのスキーマ変更を管理するCLI兼Goライブラリ。
Apache Arrow、DataFusion、Parquetを基盤とする、イベント・メトリクス・監視データ向けのオープンソース時系列データベース。
Raft合意によりノード間で複製される、SQLiteベースの軽量で耐障害性に優れた分散リレーショナルデータベース。