{"id":15722581,"url":"https://github.com/defold-rs/dmsdk","last_synced_at":"2025-05-13T10:28:48.504Z","repository":{"id":64619320,"uuid":"535403479","full_name":"defold-rs/dmsdk","owner":"defold-rs","description":"Experiments in writing Defold extensions in Rust","archived":false,"fork":false,"pushed_at":"2024-06-24T23:29:05.000Z","size":612,"stargazers_count":16,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-02T16:56:49.440Z","etag":null,"topics":["defold","ffi","native-extension","rust"],"latest_commit_sha":null,"homepage":"","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/defold-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-09-11T19:27:08.000Z","updated_at":"2025-04-09T10:22:34.000Z","dependencies_parsed_at":"2024-04-15T00:58:18.534Z","dependency_job_id":"88b55484-40da-416a-a40a-396d354e49e4","html_url":"https://github.com/defold-rs/dmsdk","commit_stats":{"total_commits":123,"total_committers":2,"mean_commits":61.5,"dds":"0.016260162601625994","last_synced_commit":"0ff4631b1f3071b883a1dfcbb7e1e76d35db088e"},"previous_names":["defold-rs/dmsdk","justapotota/defold-rs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/defold-rs%2Fdmsdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/defold-rs%2Fdmsdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/defold-rs%2Fdmsdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/defold-rs%2Fdmsdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/defold-rs","download_url":"https://codeload.github.com/defold-rs/dmsdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253922486,"owners_count":21984728,"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":["defold","ffi","native-extension","rust"],"created_at":"2024-10-03T22:08:31.960Z","updated_at":"2025-05-13T10:28:48.452Z","avatar_url":"https://github.com/defold-rs.png","language":"Rust","funding_links":[],"categories":["Tools"],"sub_categories":["Programming Language"],"readme":"![defold-rs](assets/defold-rs.svg)\n\n# defold-rs\n[![Crates.io](https://img.shields.io/crates/v/dmsdk)](https://crates.io/crates/dmsdk)\n\nTools for creating [Defold](https://defold.com/) native extensions in Rust.\n\n# Quick Start\nYou will need:\n- [Defold](https://defold.com/download/)\n- [Docker](https://www.docker.com/)\n- [The template project](https://github.com/JustAPotota/defold-rs-template)\n- [The extension build server](https://github.com/JustAPotota/defold-rs-extender)\n\nFollow the instructions in the build server's README to get it built and running. Once it's up, open the template project in Defold and open `/myextension/src` in a Rust-compatible IDE. To tell Defold to use your build server, select `File \u003e Preferences \u003e Extensions` and set `Build Server` to `http://localhost:9000`. Once that's done, you can just press `Ctrl+B` in Defold to begin compiling your project! The first build will take some time while it downloads files from Defold's servers and compiles the crate from scratch.\n\n# What is Defold?\n[Defold](https://defold.com/) is a free and open-source game engine focused on making fast, lightweight games for desktop, web, mobile, and console with zero setup. Almost all game logic is written in [Lua](https://en.wikipedia.org/wiki/Lua_(programming_language)) scripts, but the engine also provides a way to extend its functionality with C++ using [native extensions](https://defold.com/manuals/extensions/).\n\n# What are native extensions?\n[Native extensions](https://defold.com/manuals/extensions/) allow you to extend Defold's functionality using C++ or any platform-specific language. You can write extensions in JavaScript for web games, Java for Android, or Objective-C for macOS/iOS. Defold's extension SDK (dmSDK for short) grants you much deeper control of the engine than standard Lua scripts and is great for performance-sensitive processing.\n\n# So what's `defold-rs` then?\nIt's two main pieces that come together to let you write native extensions in Rust:\n\n- [`defold-rs`](https://github.com/JustAPotota/defold-rs) - This repository is home to the [`dmsdk`](https://crates.io/crates/dmsdk) and [`dmsdk_ffi`](https://crates.io/crates/dmsdk_ffi) crates. In short, `dmsdk_ffi` contains auto-generated bindings to the dmSDK and `dmsdk` wraps those unsafe bindings into a nice Rust-y package.\n- [`defold-rs-extender`](https://github.com/JustAPotota/defold-rs-extender) - A fork of Defold's extension build server with added Rust support. You'll need to run one of these yourself in order to use this project.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdefold-rs%2Fdmsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdefold-rs%2Fdmsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdefold-rs%2Fdmsdk/lists"}