{"id":20299358,"url":"https://github.com/jakewins/gqlite","last_synced_at":"2025-04-11T13:14:40.968Z","repository":{"id":39954928,"uuid":"239999441","full_name":"jakewins/gqlite","owner":"jakewins","description":null,"archived":false,"fork":false,"pushed_at":"2022-05-20T21:06:20.000Z","size":572,"stargazers_count":20,"open_issues_count":7,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-11T03:04:06.023Z","etag":null,"topics":["database","graph","graphdb"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jakewins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-12T11:44:36.000Z","updated_at":"2024-06-21T20:24:56.000Z","dependencies_parsed_at":"2022-09-05T10:30:53.098Z","dependency_job_id":null,"html_url":"https://github.com/jakewins/gqlite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakewins%2Fgqlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakewins%2Fgqlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakewins%2Fgqlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakewins%2Fgqlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakewins","download_url":"https://codeload.github.com/jakewins/gqlite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248406657,"owners_count":21098268,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","graph","graphdb"],"created_at":"2024-11-14T16:14:26.142Z","updated_at":"2025-04-11T13:14:40.951Z","avatar_url":"https://github.com/jakewins.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## Structure\n\ngqlite exposes three main API surfaces\n\n- the `gqlite` rust library, at [src/lib.rs]\n- the `g` program, at [src/main.rs] \n- the libgqlite c bindings to the rust library, at [gqlite-capi/src/lib.rs]\n\nThe `g` program and the libgqlite c bindings are both wrappers around the gqlite rust library.\n\n### Internal structure\n\ngqlite is organized into a \"frontend\" and a \"backend\". The frontend contains the parser and planner. \nBackends contain storage and provides executable implementations of the logical operators emitted by the frontend.\n\n# Getting Started\n\nTo build everything, ensure that you have Cargo and Rust installed.\n\n## Build\n\n```\ncargo build\n```\n\n## Run\n\nThe repo comes with a small graph in gram file format, representing the characters in Les Miserables.\nTo run a \"hello world\" example, let's apply a simple cypher query that pulls out character names.\n\n```\n$ ./target/debug/g -f miserables.gram 'MATCH (n:Person) RETURN n.name'\nbuilt pg: PatternGraph { e: {8: PatternNode { identifier: 8, labels: [0], props: [], solved: false }}, e_order: [8], v: [] }\nplan: Return { src: NodeScan { src: Argument, slot: 0, labels: Some(0) }, projections: [Projection { expr: Prop(Slot(0), [2]), alias: 9, dst: 1 }] }\n----\n9\n----\n\"Napoleon\"\n\"Myriel\"\n\"Mlle.Baptistine\"\n\"Mme.Magloire\"\n\"CountessdeLo\"\n\"Geborand\"\n```\n\n## Test\n\n```\n$ cargo test\n(...)\ntest result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out\n```\n\n# Limitations\n\nThis code is currently under development and only supports a small subset of the Cypher language.  Trying certain\ncypher queries may result in errors about \"The gram backend does not support this expression type yet\" or other syntax\nerrors.\n\nThe subset of Cypher that is currently supported is best described by the grammar found in `src/backend`, and should\nexpand over time.\n\n# License\n\nThis is not (yet) available under an open source license, the source is simply available for reading.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakewins%2Fgqlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakewins%2Fgqlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakewins%2Fgqlite/lists"}