Crates.io | gqlitedb |
lib.rs | gqlitedb |
version | 0.6.0 |
created_at | 2025-02-01 11:35:51.273793+00 |
updated_at | 2025-09-01 19:02:49.314218+00 |
description | 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. |
homepage | https://gqlite.org |
repository | https://gitlab.com/gqlite/gqlite |
max_upload_size | |
id | 1538372 |
size | 484,247 |
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.
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.
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.3 (1.2-1.0) | 1.3 | 0.6.x |
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 | - |
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
The gqlitedb
crate follows Semantic Versioning, and its public API stability is checked using the cargo-semver-checks
tool, subject to its limitations. Note that gqlitedb
has its own versioning and release cycle, independent of the main GQLite
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.
gqlite 2.x
.gqlite 2.0
.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.