{"id":17196586,"url":"https://github.com/johnnovak/koi","last_synced_at":"2025-04-08T03:09:19.922Z","repository":{"id":39829389,"uuid":"220592051","full_name":"johnnovak/koi","owner":"johnnovak","description":"Immediate mode UI for Nim","archived":false,"fork":false,"pushed_at":"2025-02-08T08:16:16.000Z","size":3103,"stargazers_count":79,"open_issues_count":1,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-31T17:19:21.810Z","etag":null,"topics":["gui","imgui","immediate-gui","nanovg","nim","nim-lang","opengl"],"latest_commit_sha":null,"homepage":"","language":"Nim","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/johnnovak.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":"2019-11-09T04:40:21.000Z","updated_at":"2025-03-11T05:18:04.000Z","dependencies_parsed_at":"2023-01-21T23:15:30.868Z","dependency_job_id":"e3707bc9-4e84-4c97-a0d6-90288398f8a9","html_url":"https://github.com/johnnovak/koi","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnnovak%2Fkoi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnnovak%2Fkoi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnnovak%2Fkoi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnnovak%2Fkoi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnnovak","download_url":"https://codeload.github.com/johnnovak/koi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247767234,"owners_count":20992547,"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":["gui","imgui","immediate-gui","nanovg","nim","nim-lang","opengl"],"created_at":"2024-10-15T01:53:40.795Z","updated_at":"2025-04-08T03:09:19.853Z","avatar_url":"https://github.com/johnnovak.png","language":"Nim","funding_links":[],"categories":["User Interface"],"sub_categories":["GUI"],"readme":"# koi — immediate mode UI for Nim\r\n\r\n![koi-orig-flat](https://github.com/johnnovak/koi/assets/698770/76e55eb0-c01c-4f9d-9ed0-a325058a21b0)\r\n\r\n**koi** is a small (~5 KLOC) immediate mode UI library that uses OpenGL for rendering via NanoVG. It was mainly invented for the dungeon mapping tool [Gridmonger](https://gridmonger.johnnovak.net/) (see screenshot below), and then it evolved into a minimalist but feature-rich general-purpose UI library.\r\n\r\nGLFW is currently a hard requirement, but it should be easy to adapt it to other frameworks or backends.\r\n\r\nThere is no documentation yet—check out the [examples](/examples) and Gridmonger for usage.\r\n\r\nSupport is currently *alpha level*, meaning that the API or the functionality might change without warning at any moment.\r\n\r\n\u003cimg width=\"1312\" alt=\"image\" src=\"https://github.com/johnnovak/koi/assets/698770/dbf58114-5a68-4937-96ed-cd0109eebc89\"\u003e\r\n\r\n## Dependencies\r\n\r\nNim 2.0.2 or later and the following two libraries are required:\r\n\r\n- [nim-glfw](https://github.com/johnnovak/nim-glfw)\r\n- [nim-nanovg](https://github.com/johnnovak/nim-nanovg)\r\n\r\nYou can install them with [Nimble](https://github.com/nim-lang/nimble):\r\n\r\n```\r\nnimble install glfw nanovg\r\n```\r\n\r\n## Building\r\n\r\nTo build the examples (the dependencies will be auto-installed if needed):\r\n\r\n```\r\nnimble test\r\nnimble paneltest\r\n```\r\n\r\nor\r\n\r\n```\r\nnimble testRelease\r\nnimble paneltestRelease\r\n```\r\n\r\nSee [config.nims](/config.nims) on how to link statically **koi** and **GLFW** to your program.\r\n\r\n## License\r\n\r\nCopyright © 2019-2024 John Novak \u003c\u003cjohn@johnnovak.net\u003e\u003e\r\n\r\nThis work is free. You can redistribute it and/or modify it under the terms of\r\nthe [Do What The Fuck You Want To Public License, Version 2](http://www.wtfpl.net/), as published\r\nby Sam Hocevar. See the [COPYING](./COPYING) file for more details.\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnnovak%2Fkoi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnnovak%2Fkoi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnnovak%2Fkoi/lists"}