{"id":51486907,"url":"https://github.com/radicazz/laya","last_synced_at":"2026-07-07T07:31:34.555Z","repository":{"id":316861977,"uuid":"1065062079","full_name":"radicazz/laya","owner":"radicazz","description":"SDL meets idiomatic C++","archived":false,"fork":false,"pushed_at":"2025-12-16T00:44:41.000Z","size":1168,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-17T12:59:43.145Z","etag":null,"topics":["cmake","cpp","cross-platform","library","sdl","sdl3","ui","user-interface","wrapper"],"latest_commit_sha":null,"homepage":"https://radicazz.github.io/laya/","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/radicazz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-09-27T02:01:25.000Z","updated_at":"2025-12-16T23:53:34.000Z","dependencies_parsed_at":"2025-09-27T08:18:47.244Z","dependency_job_id":"431d28b2-8bb1-4271-a3d0-aa6c5a248dc0","html_url":"https://github.com/radicazz/laya","commit_stats":null,"previous_names":["radicazz/laya"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/radicazz/laya","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicazz%2Flaya","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicazz%2Flaya/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicazz%2Flaya/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicazz%2Flaya/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/radicazz","download_url":"https://codeload.github.com/radicazz/laya/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicazz%2Flaya/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35219594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-07T02:00:07.222Z","response_time":90,"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":["cmake","cpp","cross-platform","library","sdl","sdl3","ui","user-interface","wrapper"],"created_at":"2026-07-07T07:31:34.041Z","updated_at":"2026-07-07T07:31:34.548Z","avatar_url":"https://github.com/radicazz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Temporary disable markdownlint for specific rules to allow inline html --\u003e\n\n\u003c!-- markdownlint-disable MD033 MD041 --\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimage alt=\"logo\" src=\"docs/assets/logo-header.png\" width=\"300\"/\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cp\u003e\n        \u003ca href=\"https://radicazz.github.io/laya/\"\u003eGet Started\u003c/a\u003e •\n        \u003ca href=\"examples\"\u003eExamples\u003c/a\u003e •\n        \u003ca href=\"https://github.com/radicazz/laya/releases\"\u003eReleases\u003c/a\u003e •\n        \u003ca href=\"./CONTRIBUTING\"\u003eContribute\u003c/a\u003e\n    \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cp\u003eAn intuitive C++ wrapper for modern, idiomatic and efficient multi-media development with SDL.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg alt=\"GitHub Last Commit\" src=\"https://img.shields.io/github/last-commit/radicazz/laya/main?logo=github\u0026logoColor=white\"/\u003e\n    \u003ca href=\"https://github.com/radicazz/laya/actions/workflows/build.yml\"\u003e\n        \u003cimg alt=\"Build Status\" src=\"https://github.com/radicazz/laya/actions/workflows/build.yml/badge.svg\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/radicazz/laya/actions/workflows/test.yml\"\u003e\n        \u003cimg alt=\"Tests Status\" src=\"https://github.com/radicazz/laya/actions/workflows/test.yml/badge.svg\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/radicazz/laya/actions/workflows/static.yml\"\u003e\n        \u003cimg alt=\"Static Analysis\" src=\"https://github.com/radicazz/laya/actions/workflows/static.yml/badge.svg\"/\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimage alt=\"C++ 20 Badge\" src=\"https://img.shields.io/badge/C%2B%2B-20-064F8C?logo=cplusplus\u0026logoColor=white\"/\u003e\n    \u003cimage alt=\"SDL3 Badge\" src=\"https://img.shields.io/badge/SDL-3-064F8C?logo=files\u0026logoColor=white\"/\u003e\n    \u003cimage alt=\"CMake Badge\" src=\"https://img.shields.io/badge/CMake-3.21-064F8C?logo=cmake\u0026logoColor=white\"/\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimage alt=\"License: MIT\" src=\"https://img.shields.io/github/license/radicazz/laya?color=orange\u0026logo=open-source-initiative\u0026logoColor=white\"/\u003e\n\u003c/div\u003e\n\n\u003c!--\n\u003cdiv align=\"center\"\u003e\n    \u003cp\u003e\n        \u003ca href=\"docs/quick_start.md\"\u003eQuick Start\u003c/a\u003e •\n        \u003ca href=\"examples\"\u003eExamples\u003c/a\u003e •\n        \u003ca href=\"https://github.com/radicazz/laya/releases\"\u003eReleases\u003c/a\u003e •\n        \u003ca href=\"docs/design/roadmap.md\"\u003eRoadmap\u003c/a\u003e\n    \u003c/p\u003e\n\u003c/div\u003e\n--\u003e\n\n\u003c!--\n\u003cdiv align=\"center\"\u003e\n    \u003cimage alt=\"GitHub Repo Size\" src=\"https://img.shields.io/github/repo-size/radicazz/laya?logo=github\u0026logoColor=white\"/\u003e\n    \u003cimage alt=\"License: MIT\" src=\"https://img.shields.io/github/license/radicazz/laya?color=orange\u0026logo=open-source-initiative\u0026logoColor=white\"/\u003e\n    \u003cimage alt=\"GitHub Issues\" src=\"https://img.shields.io/github/issues/radicazz/laya?logo=github\u0026logoColor=white\"/\u003e\n\u003c/div\u003e\n--\u003e\n\n\u003c!--\n\u003cdiv align=\"center\"\u003e\n    \u003cp\u003e\n    The idea behind \u003ci\u003elaya\u003c/i\u003e is to provide a clean, type-safe and idiomatic C++ interface for SDL and its extensions that feels natural while preserving the full power and flexibility of the underlying C library.\n    \u003c/p\u003e\n\u003c/div\u003e\n--\u003e\n\n\u003ch1\u003e\nAbout\n\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\n    With \u003ci\u003elaya\u003c/i\u003e you can create windows, handle input, render graphics, upload textures from surfaces, and manage resources in a type-safe and efficient manner built ontop of SDL. You can find more \u003ca href=\"examples\"\u003eexamples here\u003c/a\u003e to help you get started.\n  \u003c/p\u003e\n\n\u003cimage alt=\"example\" src=\"docs/assets/simple-code-example.png\"/\u003e\n\n\u003c/div\u003e\n\n\u003c!-- markdownlint-enable MD033 MD041 --\u003e\n\n\u003c!--\n\n```cpp\n#include \u003claya/laya.hpp\u003e\n\nint main() {\n    // RAII wrappers for memory safety\n    laya::context context(laya::subsystem::video);\n    laya::window window(\"Hello, Laya!\", {800, 600});\n    laya::renderer renderer(window);\n\n    laya::log_info(\"laya initialized successfully\")\n\n    bool running = true;\n    while (running) {\n        for (const auto\u0026 event : laya::events_view()) {\n            // Type-safe event handling\n            if (std::holds_alternative\u003claya::quit_event\u003e(event)) {\n                running = false;\n                break;\n            }\n        }\n\n        renderer.set_draw_color(laya::colors::black);\n        renderer.clear();\n\n        // Draw a rectangle\n        renderer.set_draw_color(laya::colors::white);\n        renderer.fill_rect({100, 100, 200, 150});\n\n        renderer.present();\n    }\n}\n```\n--\u003e\n\n## License\n\nThis project falls under the MIT License. See [LICENSE.txt](LICENSE.txt) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradicazz%2Flaya","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradicazz%2Flaya","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradicazz%2Flaya/lists"}