{"id":25428002,"url":"https://github.com/skelebyte/mglfw","last_synced_at":"2025-08-17T22:11:34.348Z","repository":{"id":276486788,"uuid":"921170996","full_name":"Skelebyte/mglfw","owner":"Skelebyte","description":"A minimal wrapper for GLFW, written in rust.","archived":false,"fork":false,"pushed_at":"2025-02-08T15:11:01.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-14T06:30:02.590Z","etag":null,"topics":["glfw","rust","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Skelebyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-01-23T13:26:45.000Z","updated_at":"2025-02-08T15:11:37.000Z","dependencies_parsed_at":"2025-02-08T15:41:24.345Z","dependency_job_id":null,"html_url":"https://github.com/Skelebyte/mglfw","commit_stats":null,"previous_names":["skelebyte/mglfw"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Skelebyte/mglfw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skelebyte%2Fmglfw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skelebyte%2Fmglfw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skelebyte%2Fmglfw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skelebyte%2Fmglfw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Skelebyte","download_url":"https://codeload.github.com/Skelebyte/mglfw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skelebyte%2Fmglfw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270912635,"owners_count":24666757,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"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":["glfw","rust","wrapper"],"created_at":"2025-02-17T01:31:40.601Z","updated_at":"2025-08-17T22:11:34.316Z","avatar_url":"https://github.com/Skelebyte.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MGLFW\nA minimal wrapper for GLFW, written in rust.\n## What is this?\nMGLFW (or Minimal GLFW) is a easy to use wrapper for [glfw-rs](https://crates.io/crates/glfw). It aims to make using the library at minimum a little easier.\n## Why?\nBecause I wanted to make using GLFW easier (for my self mostly). I find its just too difficult to set a simple window up with basic input.\n## Examples\nExample of a simple window with just the glfw-rs crate:\n```rs\nextern crate glfw;\n\nuse glfw::{Action, Context, Key};\n\nfn main() {\n    let mut glfw = glfw::init(glfw::fail_on_errors).unwrap();\n\n    let (mut window, events) = glfw.create_window(300, 300, \"Hello this is window\", glfw::WindowMode::Windowed)\n        .expect(\"Failed to create GLFW window.\");\n\n    window.set_key_polling(true);\n    window.make_current();\n\n    while !window.should_close() {\n        glfw.poll_events();\n        for (_, event) in glfw::flush_messages(\u0026events) {\n                match event {\n                    glfw::WindowEvent::Key(Key::Escape, _, Action::Press, _) =\u003e {\n                    window.set_should_close(true)\n                }\n                _ =\u003e {}\n            }\n        }\n    }\n}\n```\n\nNow here is the same example, but written using mglfw:\n```rs\nmod mglfw;\n\nuse mglfw::{core, input};\n\nfn main() {\n    let mut mglfw = core::Mglfw::new(\"Hello this is window\", 300, 300);\n    let mut input = input::Input::init();\n\n    let esc = input.new(\"esc\", input::KeyCode::Escape, input::Activation::Press);\n\n    while mglfw.is_running() {\n        mglfw.input_update();\n\n        if input.is_bind_active(\u0026mglfw, \u0026esc) {\n            mglfw.quit();\n        }\n    }\n}\n```\n\n## Before you use\nMGLFW is not ready for use in a proper project. If you need input and windows just use the glfw crate, or some other crate will also do the job. MGLFW is just a little side project I'll try to update every now and again.\nMGLFW also may not be as performant as the standard crate, which might be something I'll try to solve later.\n\nThis project is pretty much just for fun. Use it if you want, but just be aware there's a good chance it'll just break.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskelebyte%2Fmglfw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskelebyte%2Fmglfw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskelebyte%2Fmglfw/lists"}