{"id":22721526,"url":"https://github.com/mrjsj/godot-duckdb","last_synced_at":"2025-09-21T11:45:48.997Z","repository":{"id":240991241,"uuid":"803492412","full_name":"mrjsj/godot-duckdb","owner":"mrjsj","description":"GDNative wrapper for DuckDB","archived":false,"fork":false,"pushed_at":"2025-09-04T18:28:58.000Z","size":270820,"stargazers_count":19,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-04T19:32:34.891Z","etag":null,"topics":["duckdb","gdextension","gdnative","gdnative-bindings","godot","godot-addon","godot-plugin","godotengine","sql"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrjsj.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-20T20:35:28.000Z","updated_at":"2025-09-04T18:03:57.000Z","dependencies_parsed_at":"2025-08-19T23:27:23.897Z","dependency_job_id":null,"html_url":"https://github.com/mrjsj/godot-duckdb","commit_stats":null,"previous_names":["mrjsj/godot-duckdb"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/mrjsj/godot-duckdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjsj%2Fgodot-duckdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjsj%2Fgodot-duckdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjsj%2Fgodot-duckdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjsj%2Fgodot-duckdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrjsj","download_url":"https://codeload.github.com/mrjsj/godot-duckdb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjsj%2Fgodot-duckdb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276235386,"owners_count":25608049,"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","status":"online","status_checked_at":"2025-09-21T02:00:07.055Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["duckdb","gdextension","gdnative","gdnative-bindings","godot","godot-addon","godot-plugin","godotengine","sql"],"created_at":"2024-12-10T14:12:11.535Z","updated_at":"2025-09-21T11:45:48.936Z","avatar_url":"https://github.com/mrjsj.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n![gdduckdb](logo/gdduckdb-128x128.png?raw=true  \"Godot DuckDB Icon\")\n\n# godot-duckdb\n\nThis GDNative script aims to serve as a custom wrapper that makes the OLAP SQL engine [DuckDB](https://duckdb.org) available in Godot 4.0+.\nIt is heavily inspired by the [godot-sqlite](https://github.com/2shady4u/godot-sqlite) wrapper. **Alot** of the code base (even this README.md!) from the godot-sqlite repository has been used in this project.\n\n### Supported operating systems:\n- Mac OS X (universal)\n- Windows\n- Linux\n\n#### Planned supported operating systems\n- Android (arm64)\n- iOS (arm64)\n- HTML5 (stability depends on browser)\n\n# How to install?\n\nRe-building Godot from scratch is **NOT** required, the proper way of installing this plugin is to either install it through the Asset Library or to just manually download the build files yourself.\n\n### Godot Asset Library\n\n**Godot-DuckDB** is available through the official Godot Asset Library, and can be installed in the following way:\n\n- Click on the 'AssetLib' button at the top of the editor.\n- Search for 'godot-duckdb' and click on the resulting element.\n- In the dialog pop-up, click 'Download'.\n- Once the download is complete, click on the install button...\n- Once more, click on the 'Install' button.\n- Activate the plugin in the 'Project Settings/Plugins'-menu.\n- All done!\n\n### Manually\n\nIt's also possible to manually download the build files found in the [releases](https://github.com/mrjsj/godot-duckdb/releases) tab, extract them on your system and run the supplied demo-project. Make sure that Godot is correctly loading the `gdduckdb.gdextension`-resource and that it is available in the `res://`-environment.\n\nAn example project, named \"demo\", can also be downloaded from the releases tab.\n\n# How to use?\n\nBuilt-in functionality is very limited at the moment, however, it is possible to fully utilize DuckDB, as everything from installing duckdb-extensions to storing secrets can be controlled with sql-queries.\n\n\n```gdscript\nvar db = GDDuckDB.new()\n# db.set_path(\"path/to/db\") # Optionally set path to database, otherwise opens in-memory database\n# db.set_read_only(true) # Optionally set read_only to true/false. Default is false.\ndb.open_db()\ndb.connect()\n\nsql_query = \"SELECT 'Hello, world!' AS msg\"\n\ndb.query(sql_query)\n\nvar result = db.get_query_result()\nprint(result)\n# prints \"[{ \"msg\": \"Hello, world!\" }]\"\n\ndb.disconnect()\ndb.close_db()\n\n```\n## Variables\n\n- **query_result** (Array, default=[])\n\n    Contains the results from the latest query **by value**; meaning that this property is safe to use when looping successive queries as it does not get overwritten by any future queries.\n\n\n## Functions\n\n- Boolean success = **open_db()**\n\n- Boolean success = **close_db()**\n\n- Boolean success = **connect()**\n\n- Boolean success = **disconnect()**\n\n- Boolean success = **query(** String sql_string **)**\n\n- Boolean success = **set_path(** String path **)**\n\n- String path = **get_path()**\n\n- Boolean success = **set_read_only(** bool read_only **)**\n\n- Boolean read_only = **get_read_only()**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrjsj%2Fgodot-duckdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrjsj%2Fgodot-duckdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrjsj%2Fgodot-duckdb/lists"}