GQLite
GQLite
GQLite is a Rust-language library, with a C interface, that implements a small, fast, self-contained, high-reliability, full-featured, Graph Query database engine. GQLite support multiple database backends, such as SQLite and redb.
GQLite source code is license under the MIT License and is free to everyone to use for any purpose.
The official repositories contains bindings/APIs for C, C++, Python, Ruby and Crystal.
The library is still in its early stage, but it is now fully functional. Development effort has now slowed down and new features are added on a by-need basis. It supports a subset of ISO GQL.
Installation
To build from source, GQLite requires the cmake build system. For development, it might be necesserary to install ruby (for the test suite and updating SQL queries) and ptc (for updating SQL queries).
Specific installation instructions can be found in the installation section of the documentation.
Compatibilities
This table summarizes the versions used by GQLite. The database version refers to the schema version, with the version in parentheses indicating which version can be opened. The crate version corresponds to the GQLite release that supports that database schema.
Database Version | GQLite Version | Crate Version |
---|---|---|
1.2 (1.1-1.0) | 1.2 | 0.5.x |
1.2 | - | 0.4.x |
- | - | 0.1.x-0.3.x |
1.1 (1.0) | 1.1 | - |
1.0 | 1.0 | - |
Project Guarantees
-
Forward-Compatible Database Format
Databases created with older versions of GQLite can be opened by newer versions without requiring manual migration. This guarantee applies strictly to the on-disk format managed by GQLite. Compatibility is maintained across patch releases within the same minor version. -
Query Language Stability
Valid queries are expected to remain functional across minor releases. Specifically, OpenCypher queries will be supported throughout the entire 1.x series. If the introduction of GQL-specific features results in breaking changes, these will be deferred to the 2.x series or later. -
Semantic Versioning Compliance
Thegqlitedb
crate follows Semantic Versioning, and its public API stability is checked using thecargo-semver-checks
tool, subject to its limitations. Note thatgqlitedb
has its own versioning and release cycle, independent of the mainGQLite
binary.For maximum compatibility across
GQLite
versions, the recommended interface is the C API. The Ruby and Python APIs are also designed to remain stable across GQLite versions.
Documentation
Storage Backends
- redb store. This is the current default store for
gqlite 2.x
. - sqlite store. Pre-planning for a sqlite store, which the fasted and most used SQL database. This enable to achieve high performance and for application to combine Graph queries with traditional SQL queries. This is required for
gqlite 2.0
. - postgresql work-in-progress.
Contributions
Contributions are very welcome. They should be submited as merge requests in gitlab. Submited code should be formated with rustfmt, using the rustfmt.toml
in the root.
GQLite
- 1
- 0
- 16
- 0
- 0
- about 1 hour ago
- August 20, 2023
MIT License
Sat, 19 Jul 2025 12:40:11 GMT