Repolode
google

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

Что важно знать

  • В каждый момент времени к конкретной базе данных может обращаться только один процесс (возможно, многопоточный).
  • Это не 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 обновляется ежедневно.

Похожие проекты