Об этом проекте

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.