{"id":21457763,"url":"https://github.com/bobbens/iced-lua","last_synced_at":"2026-01-30T19:33:12.917Z","repository":{"id":263427528,"uuid":"890228662","full_name":"bobbens/iced-lua","owner":"bobbens","description":"Iced bindings for Lua using mlua.","archived":false,"fork":false,"pushed_at":"2024-11-19T11:28:52.000Z","size":88,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T23:41:35.903Z","etag":null,"topics":["gui","iced-rs","lua","mlua","rust"],"latest_commit_sha":null,"homepage":"https://github.com/bobbens/iced-lua","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/bobbens.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,"publiccode":null,"codemeta":null}},"created_at":"2024-11-18T08:04:54.000Z","updated_at":"2024-11-26T10:01:22.000Z","dependencies_parsed_at":"2024-11-18T14:43:41.460Z","dependency_job_id":"7d75000b-f016-4b2a-af6e-28ab9209afd8","html_url":"https://github.com/bobbens/iced-lua","commit_stats":null,"previous_names":["bobbens/iced-lua"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/bobbens/iced-lua","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbens%2Ficed-lua","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbens%2Ficed-lua/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbens%2Ficed-lua/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbens%2Ficed-lua/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bobbens","download_url":"https://codeload.github.com/bobbens/iced-lua/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbens%2Ficed-lua/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28918221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T19:10:10.838Z","status":"ssl_error","status_checked_at":"2026-01-30T19:06:40.573Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["gui","iced-rs","lua","mlua","rust"],"created_at":"2024-11-23T06:06:53.404Z","updated_at":"2026-01-30T19:33:12.901Z","avatar_url":"https://github.com/bobbens.png","language":"Rust","readme":"# iced-lua\n\n[Lua](https://www.lua.org/) bindings for [iced](https://iced.rs/) using [mlua](https://github.com/mlua-rs/mlua).\nThe goal is to create a Lua package that can use most of the iced API and be either run sandalone or embedded into another rust application.\n\n**This is currently very much WIP, however, it is working as a proof of concept. Help is very much welcome.**\n\n## Module Usage\n\nInstall using luarocks with:\n\n```bash\n$ luarocks install iced-lua\n```\n\nYou should now be able to `require \"iced-lua\"` from Lua.\nWith this, we can now reproduce the counter example from iced in Lua.\n\n```lua\nlocal iced = require \"iced_lua\"\n\nlocal value = 0\n\nlocal function update( message )\n   if message==\"increment\" then\n      value = value + 1\n   elseif message==\"decrement\" then\n      value = value - 1\n   end\nend\n\nlocal function view ()\n   return iced.column{\n      iced.button(\"Increment\"):on_press(\"increment\"),\n      iced.text(value):size(50),\n      iced.button(\"Decrement\"):on_press(\"decrement\"),\n   }\n   :padding(20)\n   :align_x(iced.Center())\nend\n\niced.application( \"A cooler counter\", update, view ):run()\n```\n\n## Embedding Usage\n\nYou will have to add the following dependencies.\nNote that there is no restriction on the version of Lua, so you are able to use any Lua feature version supported by mlua.\n\n```toml\n[dependencies]\niced_lua = { path = \"../..\", features = [\"lua51\"] }\nmlua = { version = \"0.10\", features = [\"lua51\",\"vendored\"] }\n```\n\nAfterwards, you can simply use the following to load the library into a `mlua::Lua` environment:\n\n```rust\n    iced_lua::open_iced(\u0026lua).unwrap();\n```\n\nYou will then be able to use the API from the `iced` global variable.\nIf you instead wish to set the global yourself, you can access all the exports with `iced_lua::exports_table`.\n\nSee [examples/counter](examples/counter) for the full example of embedding into a rust application.\n\n## TODO\n\n- [x] Proof of concept.\n- [ ] Finish implementing the API.\n- [ ] Try to fix the Send issues.\n- [ ] Maybe figure out how to use with [love2d](https://www.love2d.org/) if possible?\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobbens%2Ficed-lua","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbobbens%2Ficed-lua","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobbens%2Ficed-lua/lists"}