純粋なGoで書かれた組み込み可能な永続キーバリューデータベース。ACIDトランザクションに対応し、SSD向けに設計されています。
google/leveldb
Google製の高速な組み込み型Key-Valueストレージライブラリ。文字列のキーと値をソート順で保持します。
- スター
- 39,503
- フォーク
- 8,230
- 未解決の Issue
- 425
- 最終コミット
- 13 日前
これは何?
LevelDBは、Googleで開発されたC++製の組み込み型Key-Valueストアです。任意のバイト列のキーと値を対応付け、キー順にデータを保持するため、範囲を前後どちらの方向にも走査できます。サーバーではなくプロセスにリンクして使うライブラリで、特定のデータベースを同時に開けるのは単一のプロセス(マルチスレッドでも可)です。
APIの中心となる操作はPut、Get、Deleteで、アトミックな書き込みバッチと、一貫性のある読み取りに使える一時スナップショットも利用できます。データはデフォルトでSnappyにより圧縮され、Zstdもサポートしています。ファイルアクセスなどのOSとのやり取りは仮想インターフェースを介して行われ、呼び出し側で差し替えられます。
LevelDBはSQLデータベースではなく、インデックスやリレーショナルモデル、組み込みのクライアント・サーバー層もありません。現在は限定的なメンテナンスモードにあり、主に重大なバグ修正と互換性の変更を受け付けています。POSIXシステムとWindowsで、CMakeを使ってビルドできます。
主な機能
- 01キーと値には任意のバイト配列を指定でき、キー順に保存されます。
- 02カスタム比較関数を使ってソート順を変更できます。
- 03アトミックな書き込みバッチと一時スナップショットを利用できます。
- 04データを前後どちらの方向にも走査できます。
- 05デフォルトでSnappyを使ってデータを圧縮し、Zstdにも対応しています。
- 06仮想インターフェースを介してOSとのやり取りを差し替えられます。
ユースケース
- C++アプリケーションに高速なローカルKey-Valueキャッシュやインデックスを組み込む。
- キーによる範囲スキャンが必要な順序付きデータを保存する。
- 組み込み型ストアを基盤に、独自のストレージエンジンやサーバーを構築する。
クイックスタート
- 1
サブモジュールを含めてリポジトリをクローンする
git clone --recurse-submodules https://github.com/google/leveldb.git - 2
ビルドディレクトリを作成し、CMakeで設定する
mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. - 3
ライブラリをビルドする
cmake --build .
使う前に知っておきたいこと
- 特定のデータベースに同時にアクセスできるプロセスは1つだけです(マルチスレッドでの実行は可能です)。
- SQLデータベースではなく、クライアント・サーバー機能、インデックス、リレーショナルモデルは組み込まれていません。
- リポジトリのメンテナンスはごく限られており、重大なバグや動作を損なう問題の修正のみがレビューされます。
トピック
よくある質問
- leveldb とは?
- Google製の高速な組み込み型Key-Valueストレージライブラリ。文字列のキーと値をソート順で保持します。 LevelDBは、Googleで開発されたC++製の組み込み型Key-Valueストアです。任意のバイト列のキーと値を対応付け、キー順にデータを保持するため、範囲を前後どちらの方向にも走査できます。サーバーではなくプロセスにリンクして使うライブラリで、特定のデータベースを同時に開けるのは単一のプロセス(マルチスレッドでも可)です。
- leveldb は無料で使えますか?ライセンスは?
- leveldb は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- leveldb は今もメンテナンスされていますか?
- 活発にメンテナンス中。leveldb の最終コミットは 2026年10月8日 です。
- leveldb は何に使えますか?
- C++アプリケーションに高速なローカルKey-Valueキャッシュやインデックスを組み込む。 キーによる範囲スキャンが必要な順序付きデータを保存する。 組み込み型ストアを基盤に、独自のストレージエンジンやサーバーを構築する。
- leveldb のインストール方法は?
- サブモジュールを含めてリポジトリをクローンする: git clone --recurse-submodules https://github.com/google/leveldb.git ビルドディレクトリを作成し、CMakeで設定する: mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. ライブラリをビルドする: cmake --build .
- leveldb はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/google/leveldb
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
DuckDBは、別途サーバーを管理することなく、アプリケーション内で動作するインプロセス型の分析用SQLデータベースです。
Rust製のインプロセスSQLデータベース。SQLiteの方言、ファイル形式、C APIと互換性があり、実験的なPostgresフロントエンドも備えています。
SQLを書かずにSQLiteデータベースファイルを作成、閲覧、編集、検索できる、無料のクロスプラットフォーム対応ビジュアルツールです。
SQLiteをフォークした、オープンソースで外部からの貢献を受け入れるプロジェクト。組み込みレプリカ、リモートサーバーモード、SQLiteコアの拡張を追加します。
リバースエンジニアリングやバイナリ解析に使える、ファイル構造を解析するパターン言語を備えたクロスプラットフォームのhexエディタ。