# zserge/fenster

The most minimal cross-platform GUI library

Repository: https://github.com/zserge/fenster
Canonical: https://ross.abutalabs.com/products/fenster
Language: C++
License: MIT
License Family: permissive
Last push: 2024-09-15T20:08:31+00:00

## Health v2 (maintenance only)
Score: 31/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 94
- inputs: {"age_days": 1328, "days_push": 717, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1571, forks 85 (observed 2026-08-28T04:05:05.434212+00:00)

## What it is
Fenster is a minimal single-header C99 library for opening a cross-platform window with a 24-bit RGB framebuffer, plus keyboard/mouse input polling and audio playback. It offers a simple Arduino/Processing-style polling loop without callbacks or multithreading, with bindings for Go, Zig, and Lua.

## Use cases
- draw pixels to a cross-platform 2D canvas in C
- build a minimal retro-style game with keyboard and mouse input
- play audio from a simple C program on Windows, macOS, and Linux
- teach graphics programming like old-school BGI or INT 10h demos
- prototype demoscene or software renderer experiments
- run Doom from a tiny C library

## When to choose
- you want the smallest possible dependency for windowed 2D graphics in C
- you prefer a polling API over event callbacks and threading
- you need a teaching or prototyping tool for framebuffer graphics
- you want one header that works across Linux, macOS, and Windows

## When to avoid
- you need widgets, menus, or a full GUI toolkit
- you need GPU-accelerated rendering or 3D graphics
- you need high-resolution or multi-window support
- you need robust production-grade input handling or accessibility features

## Facets
- artifact type: library
- maturity: active
- function: gui, graphics, audio-processing
- domain: cross-platform, graphics, developer-tools
- platform: windows, cross-platform, c, cpp
- tags: framebuffer, single-header, minimal-gui, 2d-canvas, keyboard-input, mouse-input, audio-playback, c99, go-bindings, retro-computing, game-development, linux, macos

## Member repositories
- zserge/fenster (main) score 31

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:05.434212+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:58:27.529998+00:00, confidence not recorded.
  - readme: https://github.com/zserge/fenster (fetched 2026-08-28T04:05:05.434212+00:00, sha 2cbc39b68c6f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
