Быстрая встраиваемая библиотека для хранения ключей и значений в отсортированном порядке от Google.
dgraph-io/badger
Встраиваемая персистентная key-value база данных на чистом Go с ACID-транзакциями и архитектурой, рассчитанной на SSD.
- Звёзды
- 15,786
- Форки
- 1,334
- Открытые issues
- 76
- Последний коммит
- вчера
Что это?
BadgerDB — встраиваемое персистентное key-value хранилище, полностью написанное на Go. Оно работает внутри процесса приложения, а не как отдельный сервер, и служит движком хранения для графовой базы данных Dgraph.
Badger построен на LSM-дереве с отдельным журналом значений и основан на архитектуре WiscKey, в которой значения хранятся отдельно от индекса ключей, чтобы снизить усиление записи на SSD. Поддерживаются конкурентные ACID-транзакции с сериализуемой изоляцией снимков, итераторы для сканирования по префиксу и диапазону ключей, версии для каждого ключа и TTL. Поскольку Badger не использует Cgo, для сборки достаточно стандартного инструментария Go.
В проект также входит CLI для таких операций, как автономное резервное копирование и восстановление. Библиотека доступна как Go-модуль по адресу github.com/dgraph-io/badger/v4.
Ключевые возможности
- 01Встраиваемое key-value хранилище на чистом Go без зависимости от Cgo.
- 02Конкурентные ACID-транзакции с сериализуемой изоляцией снимков.
- 03Разделение ключей и значений с отдельным журналом значений для снижения усиления записи на SSD.
- 04Итераторы для сканирования по префиксу и диапазону ключей, а также доступ к нескольким версиям каждого ключа.
- 05Поддержка TTL для автоматического истечения срока действия ключей.
- 06Инструмент командной строки для автономного резервного копирования и восстановления.
Сценарии использования
- Встраивание быстрого локального персистентного хранилища в сервис или CLI-инструмент на Go.
- Использование в качестве слоя хранения для распределённой системы или графовой базы данных.
- Создание Raft-журнала или хранилища метаданных в приложениях на Go.
- Хранение больших наборов данных на SSD, когда важна скорость чтения и записи.
Быстрый старт
- 1
Установите библиотеку в проект Go
go get github.com/dgraph-io/badger/v4 - 2
Установите инструмент командной строки Badger из клонированного репозитория
cd badger go install .
Что важно знать
- Требуется Go версии 1.23 или выше.
Темы
Частые вопросы
- Что такое badger?
- Встраиваемая персистентная key-value база данных на чистом Go с ACID-транзакциями и архитектурой, рассчитанной на SSD. BadgerDB — встраиваемое персистентное key-value хранилище, полностью написанное на Go. Оно работает внутри процесса приложения, а не как отдельный сервер, и служит движком хранения для графовой базы данных Dgraph.
- badger можно использовать бесплатно? Какая у него лицензия?
- badger распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- badger всё ещё поддерживается?
- Активно поддерживается. Последний коммит в badger — 20 окт. 2026 г..
- Для чего можно использовать badger?
- Встраивание быстрого локального персистентного хранилища в сервис или CLI-инструмент на Go. Использование в качестве слоя хранения для распределённой системы или графовой базы данных. Создание Raft-журнала или хранилища метаданных в приложениях на Go. Хранение больших наборов данных на SSD, когда важна скорость чтения и записи.
- Как установить badger?
- Установите библиотеку в проект Go: go get github.com/dgraph-io/badger/v4 Установите инструмент командной строки Badger из клонированного репозитория: cd badger go install .
- Где скачать badger?
- Исходный код и инструкции по установке — на GitHub: https://github.com/dgraph-io/badger
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Распределённое надёжное key-value хранилище для критически важных данных распределённых систем на основе консенсуса Raft с gRPC API.
Полнофункциональная ORM для Go: преобразует структуры в таблицы БД и поддерживает связи, хуки, транзакции и миграции.
CLI и библиотека Go для управления изменениями схемы БД с помощью версионируемых SQL-файлов или Go-функций.
SQL-компилятор, который читает ваши SQL-запросы и генерирует для них типобезопасный код на Go, Kotlin, Python и TypeScript.
Лёгкая отказоустойчивая распределённая реляционная база данных на SQLite с репликацией между узлами через консенсус Raft.