Repolode
google

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. 1

    サブモジュールを含めてリポジトリをクローンする

    git clone --recurse-submodules https://github.com/google/leveldb.git
  2. 2

    ビルドディレクトリを作成し、CMakeで設定する

    mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release ..
  3. 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 の数値は毎日更新されます。

関連プロジェクト