Встраиваемая персистентная key-value база данных на чистом Go с ACID-транзакциями и архитектурой, рассчитанной на SSD.
google/leveldb
Быстрая встраиваемая библиотека для хранения ключей и значений в отсортированном порядке от Google.
- Звёзды
- 39,503
- Форки
- 8,230
- Открытые issues
- 425
- Последний коммит
- 13 дней назад
Что это?
LevelDB — встраиваемое хранилище «ключ—значение», написанное на C++ в Google. Оно сопоставляет произвольные байтовые строки-ключи байтовым строкам-значениям и хранит данные в порядке ключей, позволяя приложениям перебирать диапазоны в прямом и обратном направлении. Это библиотека, которая подключается к процессу, а не сервер; в каждый момент времени указанную базу данных может открыть только один процесс (возможно, многопоточный).
API построен вокруг операций Put, Get и Delete, а также атомарных пакетов записи и временных снимков для согласованного чтения. По умолчанию данные сжимаются с помощью Snappy; также поддерживается Zstd. Взаимодействие с операционной системой, например доступ к файлам, выполняется через виртуальный интерфейс, который вызывающий код может заменить.
LevelDB — не SQL-база данных: в ней нет индексов, реляционной модели и встроенного клиент-серверного слоя. Сейчас проект находится в режиме ограниченной поддержки: принимаются главным образом критические исправления ошибок и изменения для обеспечения совместимости. Сборка выполняется с помощью CMake в POSIX-системах и Windows.
Ключевые возможности
- 01Ключи и значения могут быть произвольными байтовыми массивами и хранятся в порядке ключей.
- 02Поддерживаются пользовательские функции сравнения, позволяющие менять порядок сортировки.
- 03Предусмотрены атомарные пакеты записи и временные снимки.
- 04Поддерживается перебор данных в прямом и обратном направлении.
- 05По умолчанию данные сжимаются с помощью Snappy; также поддерживается Zstd.
- 06Вызывающий код может заменить слой взаимодействия с ОС через виртуальный интерфейс.
Сценарии использования
- Встраивание быстрого локального кэша или индекса «ключ—значение» в приложение на C++.
- Хранение упорядоченных данных, для которых нужны сканирования диапазонов по ключу.
- Создание собственного движка хранения или сервера на основе встраиваемого хранилища.
Быстрый старт
- 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 .
Что важно знать
- В каждый момент времени к конкретной базе данных может обращаться только один процесс (возможно, многопоточный).
- Это не SQL-база данных; встроенная поддержка клиент-серверной архитектуры, индексов и реляционной модели отсутствует.
- Репозиторий почти не сопровождается; на проверку отправляются только исправления критических ошибок и проблем, нарушающих работу.
Темы
Частые вопросы
- Что такое leveldb?
- Быстрая встраиваемая библиотека для хранения ключей и значений в отсортированном порядке от Google. LevelDB — встраиваемое хранилище «ключ—значение», написанное на C++ в Google. Оно сопоставляет произвольные байтовые строки-ключи байтовым строкам-значениям и хранит данные в порядке ключей, позволяя приложениям перебирать диапазоны в прямом и обратном направлении. Это библиотека, которая подключается к процессу, а не сервер; в каждый момент времени указанную базу данных может открыть только один процесс (возможно, многопоточный).
- leveldb можно использовать бесплатно? Какая у него лицензия?
- leveldb распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- leveldb всё ещё поддерживается?
- Активно поддерживается. Последний коммит в leveldb — 8 окт. 2026 г..
- Для чего можно использовать leveldb?
- Встраивание быстрого локального кэша или индекса «ключ—значение» в приложение на C++. Хранение упорядоченных данных, для которых нужны сканирования диапазонов по ключу. Создание собственного движка хранения или сервера на основе встраиваемого хранилища.
- Как установить 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 проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
DuckDB — аналитическая SQL-база данных, работающая внутри приложения без отдельного сервера.
Встраиваемая SQL-база данных на Rust, совместимая с диалектом SQL, форматом файлов и C API SQLite, с экспериментальным интерфейсом Postgres.
Бесплатный кроссплатформенный графический инструмент для создания, просмотра, редактирования и запросов к файлам баз данных SQLite без написания SQL.
Форк SQLite с открытым исходным кодом и открытым приёмом изменений, в котором появились встроенные реплики, удалённый режим сервера и расширения ядра SQLite.
Кроссплатформенный hex-редактор для реверс-инжиниринга и анализа бинарных данных с языком описания структур файлов.