{"id":15029465,"url":"https://github.com/mrfrenik/gunslinger","last_synced_at":"2025-05-15T20:03:29.053Z","repository":{"id":37277908,"uuid":"245496769","full_name":"MrFrenik/gunslinger","owner":"MrFrenik","description":"C99, header-only framework for games and multimedia applications","archived":false,"fork":false,"pushed_at":"2025-04-17T17:16:42.000Z","size":21608,"stargazers_count":1332,"open_issues_count":27,"forks_count":81,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-05-15T20:03:26.164Z","etag":null,"topics":["c99","game-framework","lightweight"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrFrenik.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":"2020-03-06T19:05:15.000Z","updated_at":"2025-05-15T12:42:36.000Z","dependencies_parsed_at":"2024-01-03T04:00:45.376Z","dependency_job_id":"ccdbc057-3812-4564-bcc4-040c9fde0bcd","html_url":"https://github.com/MrFrenik/gunslinger","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrFrenik%2Fgunslinger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrFrenik%2Fgunslinger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrFrenik%2Fgunslinger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrFrenik%2Fgunslinger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrFrenik","download_url":"https://codeload.github.com/MrFrenik/gunslinger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414493,"owners_count":22067271,"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":["c99","game-framework","lightweight"],"created_at":"2024-09-24T20:10:45.151Z","updated_at":"2025-05-15T20:03:27.824Z","avatar_url":"https://github.com/MrFrenik.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"![gunslinger](https://raw.githubusercontent.com/MrFrenik/gunslinger/master/docs/gs_logo2.png)\n![GitHub](https://img.shields.io/github/license/mrfrenik/gunslinger)\n![GitHub top language](https://img.shields.io/github/languages/top/mrfrenik/gunslinger?label=c99)\n[![CI](https://github.com/MrFrenik/gunslinger/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/MrFrenik/gunslinger/actions/workflows/ci.yml)\n\nGunslinger is a header-only c99 framework for multimedia applications.\n\n## Features\n- Header-only: drag-drop into any project without any additional compiling required.\n- All externals included in the framework itself.\n- Simple API inspired by [sokol](https://github.com/floooh/sokol) headers.\n- Provides core framework for quickly developing multimedia applications: [Platform](https://github.com/MrFrenik/gunslinger/blob/master/docs/platform.md), [Graphics](https://github.com/MrFrenik/gunslinger/blob/master/docs/graphics.md), [Audio layers](https://github.com/MrFrenik/gunslinger/blob/master/docs/audio.md). \n- Provides custom utilities for [math](https://github.com/MrFrenik/gunslinger/blob/master/docs/math.md) and [generic data structures](https://github.com/MrFrenik/gunslinger/blob/master/docs/containers.md).\n- Optional [helper utilties](https://github.com/MrFrenik/gunslinger/tree/master/util) are provided, such as [OpenGL 2.0-style Immediate-Mode Rendering](https://github.com/MrFrenik/gunslinger/blob/master/util/gs_idraw.h), [Asset Management System](https://github.com/MrFrenik/gunslinger/blob/master/util/gs_asset.h), [Physics Util](https://github.com/MrFrenik/gunslinger/blob/master/util/gs_physics.h), [Immediate Mode GUI](https://github.com/MrFrenik/gunslinger/blob/master/util/gs_gui.h), [Graphics Extensions](https://github.com/MrFrenik/gunslinger/blob/master/util/gs_gfxt.h), and a [Meta Data Reflection Utility](https://github.com/MrFrenik/gunslinger/blob/master/util/gs_meta.h). \n- Supports a growing list of platforms: `Windows`, `OSX`, `Linux`, `Android`, and `HTML5` currently with plans to add `UWP`, `RPI`, `IOS`.\n- Graphics pipeline follows an explicit rendering framework, making it easier to write for modern backends, such as `Vulkan`/`DX12`/`Metal`.\n- All core layers can be fully swapped out with custom user implementations.\n- Large collection of [examples](https://github.com/MrFrenik/gs_examples) for quickly getting started.\n- An available [project template](https://github.com/MrFrenik/gs_project_template) for various platforms and build systems to get started with a blank gunslinger project.\n- Official framework used for all [Game Engineering](https://www.youtube.com/watch?v=VLZjd_Y1gJ8\u0026list=PLIozaEI1hFu3Cd0YJMwOBQKTKfe9uZoyn) YouTube videos.\n\n## Documentation\n\n* [Official Documentation (Docsforge)](https://gunslinger.docsforge.com/)\n* [Online Sample Repo](https://mrfrenik.github.io/gunslinger)\n* [Getting Started](https://github.com/MrFrenik/gunslinger/blob/master/docs/getting_started.md)\n* [Graphics](https://github.com/MrFrenik/gunslinger/blob/master/docs/graphics.md)\n* [Containers](https://github.com/MrFrenik/gunslinger/blob/master/docs/containers.md)\n* [Examples](https://github.com/MrFrenik/gs_examples)\n\n[//]: # \"(* [Platform](https://github.com/MrFrenik/gunslinger/blob/master/docs/platform.md) )\"\n[//]: # \"(* [Graphics](https://github.com/MrFrenik/gunslinger/blob/master/docs/graphics.md) )\" \n[//]: # \"(* [Audio](https://github.com/MrFrenik/gunslinger/blob/master/docs/audio.md) )\" \n[//]: # \"(* [Math](https://github.com/MrFrenik/gunslinger/blob/master/docs/math.md) )\" \n[//]: # \"(* [Utils](https://github.com/MrFrenik/gunslinger/blob/master/docs/utils.md) )\" \n\n## Basic Example\nA simple c99 'Hello World' example using gunslinger: \n\n```c\n#define GS_IMPL\n#include \u003cgs.h\u003e\n\ngs_app_desc_t gs_main(int32_t argc, char** argv)\n{\n   return (gs_app_desc_t){0};\n}\n```\n## Projects using GS\n\n### Drop Down Terminal Util\nhttps://github.com/Samdal/gs_ddt_ex\n\n## Roadmap\n\n* Support iOS/RPI/UWP backends\n* Support Vulkan/Metal/DX12 backends\n* Language Ports: (Python, JS, Rust, C#)\n* Add platform-independent threading utils to framework\n* Job System Util\n* Write more docs for github\n* Hot-reload util\n* Remove all externals from core framework\n* Add more texture formats\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrfrenik%2Fgunslinger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrfrenik%2Fgunslinger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrfrenik%2Fgunslinger/lists"}