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

Frigolite — это созданная с нуля переработка движка базы данных SQLite на чистом Go, предназначенная для обеспечения совместимости с форматами файлов SQLite без необходимости использования CGO, внешних зависимостей или CLI sqlite3. Он служит легким, автономным решением для SQL-баз данных для приложений на Go. Основные особенности включают: - **Реализация на чистом Go**: Никаких внешних зависимостей и CGO, что обеспечивает простоту интеграции и переносимость. - **Совместимость с SQLite**: Чтение и запись стандартных файлов `.db`, поддержка полезного подмножества SQL, включая `CREATE`, `INSERT`, `SELECT` (с соединениями, подзапросами и агрегациями), `UPDATE` и `DELETE`. - **Широкая поддержка функций**: Включает более 60 SQL-функций, таких как манипуляция строками, числовые операции, условная логика и утилиты сжатия. - **Расширенные возможности**: Поддержка виртуальных таблиц (например, `generate_series`), более 25 PRAGMAs и EXPLAIN/EXPLAIN QUERY PLAN для отладки. - **Гибкие интерфейсы**: Предоставляет как родной API Go, так и стандартный драйвер `database/sql`, позволяя разработчикам использовать типизированное сканирование, заполнители и подготовленные операторы. - **Командная оболочка**: Включает интерактивную CLI для прямого управления базой данных. - **Надежное тестирование**: Поддерживается 842 тестами, включая автоматически конвертированные тесты совместимости с SQLite, что обеспечивает надежность. Архитектура Frigolite модульная, с отдельными пакетами для хранения, пейджера, B-дерева, разбора SQL и выполнения. Он придерживается принципов SOLID и идиом Go, что делает его поддерживаемой и эффективной альтернативой для проектов, требующих функциональности SQLite без накладных расходов на C-связи.