Об этом проекте
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-связи.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.