← Ко всем open source проектам

LevelDB

google/leveldb

LevelDB — быстрая встраиваемая key-value библиотека Google с упорядоченными ключами.

Форки 8,203
Автор google
Язык C++
Лицензия BSD-3-Clause
Обновлено 2026-06-27

Что это такое

LevelDB — быстрая библиотека хранения ключ-значение, написанная в Google. Ее авторы — Sanjay Ghemawat и Jeff Dean.

Проект предоставляет упорядоченное отображение строковых ключей в строковые значения. При этом ключи и значения являются произвольными массивами байтов, а порядок можно менять собственной функцией сравнения.

LevelDB — не серверная база данных. Это встраиваемая библиотека, которую приложение подключает внутрь своего процесса, чтобы хранить локальные данные без отдельного фонового демона, сетевого протокола и отдельной службы администрирования.

Что внутри

Базовые операции простые: Put, Get и Delete. Несколько изменений можно объединить в атомарный пакет, чтобы приложение видело их как одно согласованное обновление.

Данные хранятся отсортированными по ключу. Это важно для диапазонных чтений и последовательного обхода, когда нужно не только найти один ключ, но и пройти соседние записи.

В репозитории прямо указано, что обслуживание сейчас очень ограничено. Команда рассматривает в основном критические ошибки, проблемы с потерей данных, повреждением памяти и изменения, нужные внутренним клиентам.

Как используют

LevelDB выбирают для локальных индексов, кешей, метаданных, очередей и небольших встроенных хранилищ, где отдельная SQL-база или серверное решение избыточны.

Библиотека хорошо подходит, когда приложение само управляет жизненным циклом данных и хочет предсказуемое хранилище с быстрым доступом по ключу.

Ограничение в том, что LevelDB не дает готовых SQL-запросов, сетевого доступа, прав пользователей и распределенной репликации. Все это нужно строить выше или выбирать другой инструмент.

Модель операций

Пример показывает не конкретный синтаксис C++, а рабочую модель LevelDB: запись, чтение, удаление и пакетное обновление.

Сильные стороны и ограничения

Сильная сторона LevelDB — простота и предсказуемость встраиваемого хранилища. Приложение получает быстрый ordered key-value слой без отдельной службы.

Слабая сторона — ограниченное текущее сопровождение. Для нового крупного продукта важно оценить, подходит ли такой режим поддержки требованиям команды.

LevelDB подойдет инфраструктурным компонентам, локальным кешам и системам, где нужен небольшой надежный слой хранения. Для многопользовательской базы с запросами, ролями и аналитикой нужен другой класс решения.

Пример

Базовые операции

Пример в нейтральной форме показывает, какие действия обычно выполняет приложение поверх LevelDB.

Язык: Plain text
db.Put("user:42", "Alice")
value = db.Get("user:42")
db.Delete("user:42")

batch.Put("user:43", "Bob")
batch.Delete("user:41")
db.Write(batch)