Fenster is a minimal, highly opinionated library for creating cross-platform 2D graphical applications. Its core implementation is a single C99 header of roughly 300 lines, making the code easy to inspect and modify. It opens one titled window and exposes a simple 24-bit RGB framebuffer for direct pixel drawing. Keyboard events, mouse coordinates, clicks, timing, application lifecycle, and system events are handled through a polling API. The same interface also provides audio playback through WinMM on Windows, CoreAudio on macOS, and ALSA on Linux. Programs do not need callbacks, multithreading, or a large GUI framework. Fenster additionally offers Go, Zig, and community Lua bindings and is capable enough to support games, visual experiments, and even Doom ports.

Features

  • Single-header C99 implementation
  • Direct 24-bit RGB framebuffer access
  • Cross-platform keyboard and mouse input
  • Stable frame timing and event handling
  • Windows, macOS, and Linux audio playback
  • Go, Zig, and Lua language bindings

Project Samples

Project Activity

See All Activity >

License

MIT License

Follow Fenster

Fenster Web Site

Other Useful Business Software
$300 Free Credits to Build on Google Cloud Icon
$300 Free Credits to Build on Google Cloud

New customers can spin up VMs, build with AI, and query data at no cost.

Put your $300 in credit toward real workloads, then keep building with free monthly usage for 20+ products. No commitment and no charge until you upgrade.
Start Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Fenster!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

C++

Related Categories

C++ User Interface (UI) Software

Registered

2026-07-30