About this project
Frigolite is a from-scratch reimplementation of the SQLite database engine in pure Go, designed to provide SQLite-compatible file formats without requiring CGO, external dependencies, or the sqlite3 CLI. It serves as a lightweight, self-contained SQL database solution for Go applications.
Key features include:
- **Pure Go Implementation**: Zero external dependencies and no CGO, ensuring easy integration and portability.
- **SQLite Compatibility**: Reads and writes standard `.db` files, supporting a useful subset of SQL including `CREATE`, `INSERT`, `SELECT` (with joins, subqueries, and aggregations), `UPDATE`, and `DELETE`.
- **Extensive Function Support**: Includes over 60 SQL functions such as string manipulation, numeric operations, conditional logic, and compression utilities.
- **Advanced Features**: Supports virtual tables (e.g., `generate_series`), over 25 PRAGMAs, and EXPLAIN/EXPLAIN QUERY PLAN for debugging.
- **Flexible Interfaces**: Provides both a native Go API and a standard `database/sql` driver, allowing developers to use typed scans, placeholders, and prepared statements.
- **Command-Line Shell**: Includes an interactive CLI for direct database management.
- **Robust Testing**: Backed by 842 tests, including auto-converted SQLite compatibility tests, ensuring reliability.
Frigolite's architecture is modular, with distinct packages for storage, pager, B-tree, SQL parsing, and execution. It adheres to SOLID principles and Go idioms, making it a maintainable and efficient alternative for projects needing SQLite functionality without the overhead of C bindings.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.