{"id":13477803,"url":"https://github.com/godot-rust/gdext","last_synced_at":"2025-05-14T22:05:24.374Z","repository":{"id":62904757,"uuid":"511310930","full_name":"godot-rust/gdext","owner":"godot-rust","description":"Rust bindings for Godot 4","archived":false,"fork":false,"pushed_at":"2025-05-14T21:28:26.000Z","size":6553,"stargazers_count":3679,"open_issues_count":103,"forks_count":224,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-05-14T22:03:34.793Z","etag":null,"topics":["game-development","gamedev","godot","rust"],"latest_commit_sha":null,"homepage":"https://mastodon.gamedev.place/@GodotRust","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/godot-rust.png","metadata":{"files":{"readme":"ReadMe.md","changelog":"Changelog.md","contributing":"Contributing.md","funding":".github/FUNDING.yml","license":"License.txt","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},"funding":{"github":["Bromeon","lilizoey","TitanNano"]}},"created_at":"2022-07-06T22:34:36.000Z","updated_at":"2025-05-14T21:00:50.000Z","dependencies_parsed_at":"2023-10-03T12:57:57.345Z","dependency_job_id":"982f3244-7d4a-4cb2-b5a1-ee36a2b45edc","html_url":"https://github.com/godot-rust/gdext","commit_stats":{"total_commits":1488,"total_committers":87,"mean_commits":"17.103448275862068","dds":0.228494623655914,"last_synced_commit":"a0d579900308b87358b646df43c9100b36cc5ba6"},"previous_names":["godot-rust/gdextension"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godot-rust%2Fgdext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godot-rust%2Fgdext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godot-rust%2Fgdext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godot-rust%2Fgdext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/godot-rust","download_url":"https://codeload.github.com/godot-rust/gdext/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235687,"owners_count":22036962,"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":["game-development","gamedev","godot","rust"],"created_at":"2024-07-31T16:01:47.787Z","updated_at":"2025-05-14T22:05:24.317Z","avatar_url":"https://github.com/godot-rust.png","language":"Rust","readme":"![logo.png](misc/assets/gdext-ferris.png)\n\n# Rust bindings for Godot 4\n\n_**[Website]** | **[Book][book]** | **[API Docs]** | [Discord] | [Mastodon] | [Twitter] | [Sponsor]_\n\n**gdext** is a library to integrate the Rust language with Godot 4.\n\n[Godot] is an open-source game engine, focusing on a productive and batteries-included 2D and 3D experience.  \nIts _GDExtension_ API allows integrating third-party languages and libraries.\n\nRust bindings for Godot 3 (GDNative API) are available in [`gdnative`].\n\n\n## Philosophy\n\nThe Rust binding is an alternative to GDScript, with a focus on type safety, scalability and performance.\n\nThe primary goal of gdext is to provide a [**pragmatic Rust API**][philosophy] for game developers.\n\nRecurring workflows should be simple and require minimal boilerplate. APIs are designed to be safe and idiomatic Rust wherever possible.\nDue to interacting with Godot as a C++ engine, we sometimes follow unconventional approaches to provide a good user experience.\n\n\n## Development status\n\nThe gdext library has evolved a lot during 2023 and 2024 and is now in a usable state for smaller projects.\nHowever, there are still certain things to keep in mind.\n\n\u003e [!WARNING]  \n\u003e The public API introduces breaking changes from time to time, primarily motivated by new features and improved ergonomics.\n\u003e Our [crates.io releases][crates-io] adhere to SemVer, but may lag behind the `master` branch. See also [API stability] in the book.\n\n**Features:** Most Godot APIs have been mapped at this point. The current focus lies on a more natural Rust experience and enable more design\npatterns that come in handy for day-to-day game development. See [#24] for an up-to-date feature overview.\n\nAt the moment, there is experimental support for [Wasm], [Android] and [iOS], but documentation and tooling is still lacking. Contributions are very welcome!\n\n**Bugs:** Most undefined behavior related to the FFI layer has been ironed out, but there may still be occasional safety issues. Apart from that,\nnew additions to the library are typically not feature-complete from the start, but become more robust with feedback and testing over time.\nTo counter bugs, we have an elaborate CI suite including clippy, unit tests, engine integration tests and memory sanitizers. Even hot-reload is tested!\n\n\n## Getting started\n\nTo dive into Rust development with gdext, check out [the godot-rust book][book]. The book is still under construction,\nbut already covers a _Hello World_ setup as well as several more in-depth chapters.\n\nTo consult the API reference, have a look at the online [API Docs].\n\nFurthermore, we provide some practical examples and small games in the [demo-projects] repository.\n\nIf you need help, join our [Discord] server and ask in the `#help` channel!\n\n\n## License\n\nWe use the [Mozilla Public License 2.0][mpl]. MPL tries to find a balance between permissive (MIT, Apache, Zlib) and copyleft licenses (GPL, LGPL).\n\nThe license provides a lot of freedom: you can use the library commercially and keep your own code closed-source,\ni.e. game development is not restricted. The main condition is that if you change gdext _itself_, you need to make\nthose changes available (and only those, no surrounding code).\n\n\n## Contributing\n\nContributions are very welcome! If you want to help out, see [`Contributing.md`](Contributing.md) for some pointers on getting started.\n\n[#24]: https://github.com/godot-rust/gdext/issues/24\n[API Docs]: https://godot-rust.github.io/docs/gdext\n[API stability]: https://godot-rust.github.io/book/toolchain/compatibility.html#rust-api-stability\n[Android]: https://github.com/godot-rust/gdext/issues/470\n[Discord]: https://discord.gg/aKUCJ8rJsc\n[Godot]: https://godotengine.org\n[Mastodon]: https://mastodon.gamedev.place/@GodotRust\n[Sponsor]: https://github.com/sponsors/Bromeon\n[Twitter]: https://twitter.com/GodotRust\n[WASM]: https://godot-rust.github.io/book/toolchain/export-web.html\n[Website]: https://godot-rust.github.io\n[`gdnative`]: https://github.com/godot-rust/gdnative\n[book]: https://godot-rust.github.io/book\n[demo-projects]: https://github.com/godot-rust/demo-projects\n[iOS]: https://github.com/godot-rust/gdext/issues/498\n[mpl]: https://www.mozilla.org/en-US/MPL\n[philosophy]: https://godot-rust.github.io/book/contribute/philosophy.html\n[crates-io]: https://crates.io/crates/godot","funding_links":["https://github.com/sponsors/Bromeon","https://github.com/sponsors/lilizoey","https://github.com/sponsors/TitanNano"],"categories":["Rust","Libraries"],"sub_categories":["Game development"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodot-rust%2Fgdext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgodot-rust%2Fgdext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodot-rust%2Fgdext/lists"}