Об этом проекте
bytdb — встроенная реляционная база данных на чистом Go, созданная для заполнения ниши SQLite при работе с диалектом PostgreSQL. Она полностью функционирует в процессе приложения, не требуя внешнего сервера, cgo или сокетного взаимодействия.
Ключевые технические особенности:
- **Совместимость с PostgreSQL**: Поддерживает протокол PostgreSQL через `pgwire`, что позволяет подключаться инструментам вроде `psql`, `pgx` и различным ORM (например, GORM). Реализуется подмножество диалекта PostgreSQL, включая оконные функции, CTE, JOIN и поддержку `jsonb`.
- **Встроенная архитектура**: Построена как реляционный слой поверх `btypedb`; таблицы, строки и вторичные индексы кодируются в едином упорядоченном пространстве ключей, что обеспечивает эффективное сканирование ключей и атомарные операции.
- **Параллельность и транзакции**: По умолчанию предоставляет сериализуемые транзакции. Также доступен режим оптимистичного контроля параллелизма (OCC) для высокопроизводительных нагрузок с преобладанием чтений.
- **Типы данных**: Поддерживаются типы уровня PostgreSQL, включая `timestamp[tz]`, `date`, `uuid`, `text[]` и `jsonb` с полным семейством операторов.
- **Надёжность и безопасность**: Предусмотрен журнал предварительной записи (WAL) для устойчивости при потере питания, опциональное шифрование AES-256-GCM в состоянии покоя и асинхронная репликация в S3-совместимые объектные хранилища (аналогично Litestream).
- **Управление схемой**: Поддерживает разреженные значения строк, позволяя изменять схему только на уровне метаданных — добавление и удаление столбцов без полной перезаписи таблицы.
Базу данных можно использовать через стандартный драйвер `database/sql`, прямой SQL API или как автономный сервер по протоколу PostgreSQL.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.