A Rust library that provides a SQL database engine with a parser, execution layer, and pluggable storage for structured and unstructured data.
GlueSQL is a Rust-based SQL database engine library that includes a SQL parser, execution layer, and pluggable storage system. It enables developers to add SQL query capabilities to various storage backends, from in-memory data structures to NoSQL databases and file formats, bridging the gap between SQL and NoSQL systems.
Developers building applications that need SQL querying over custom or existing storage systems, including those working with embedded databases, file-based data, or NoSQL databases who want SQL compatibility.
It provides a portable, extensible SQL engine that can attach to almost any storage, offering both SQL and a flexible AST builder, with support for structured and unstructured data in a single interface.
GlueSQL is quite sticky. It attaches to anywhere.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports a wide range of backends including memory, key-value databases, file formats, and web storage, as detailed in the README's list of reference storages like Sled, JSON, and IndexedDB.
Handles both structured and unstructured data, enabling joins across schemaless tables, demonstrated in the schemaless SQL example with JSON data.
Allows easy creation of custom storage adapters by implementing Store and StoreMut traits, backed by a comprehensive test suite for validation.
Runs in Rust and JavaScript environments, with expanding language support, making it portable for web and embedded applications.
May lack advanced SQL capabilities like stored procedures, triggers, or full transaction support across all storages, as some backends like JSON Storage are specialized for select operations.
Adding a SQL layer on top of diverse storages can introduce performance penalties, especially for complex queries or large datasets, compared to native database engines.
Being a newer project, it has a smaller community and fewer third-party tools compared to established databases, which can impact support and integration ease.