| Crates.io | gelx_core |
| lib.rs | gelx_core |
| version | 0.8.5 |
| created_at | 2025-05-16 08:54:02.87157+00 |
| updated_at | 2025-08-02 07:55:00.885189+00 |
| description | Utilities for codegen in the `gelx` crate. |
| homepage | https://geldata.com |
| repository | https://github.com/ifiokjr/gelx |
| max_upload_size | |
| id | 1676235 |
| size | 189,025 |
gelx_coreCore utilities and logic for
gelxcode generation, powering both thegelxprocedural macro and thegelx_cli.
The gelx_core crate is the engine behind the gelx ecosystem. It provides the foundational components and functionalities required for:
.edgeql).TokenStreams.gelx configuration from Cargo.toml ([package.metadata.gelx]).gelx (the macro crate) and gelx_cli (the command-line tool).This crate is not typically used directly by end-users but serves as an internal library for the other gelx tools. If you are looking to generate Rust code from Gel queries, you should use either the gelx macro for inline queries or the gelx_cli for file-based generation.
Key functionalities provided by gelx_core include:
get_descriptor_sync and get_descriptor functions to fetch query data descriptions from a running Gel instance.generate_query_token_stream which takes a query description and generates the corresponding Rust code (structs for input/output, and query functions).GelxMetadata from Cargo.toml.String, Uuid, DateTime, custom enums, and object shapes).gelx ecosystem.gelx_core exposes several features that can be toggled by dependent crates (like gelx and gelx_macros):
with_bigint: Enables support for BigInt.with_bigdecimal: Enables support for BigDecimal.with_chrono: Enables support for chrono date/time types.with_all: A convenience feature that enables all with_* features.query: Enables generation of query execution functions (depends on gel-tokio).serde: Enables #[derive(Serialize, Deserialize)] for generated structs.builder: Enables #[derive(TypedBuilder)] for generated input structs.strum: Enables #[derive(EnumString, Display)] for generated enums.These features are typically controlled via the gelx crate's own features.
This crate is part of the gelx workspace. Please refer to the main project's contributing guide for details on how to set up the development environment and contribute.
Unlicense, see the license file in the root of the workspace.