Hacker News Digest

25 августа 2025 г. в 19:41 • github.com • ⭐ 118 • 💬 31

OriginalHN

#c#zig#odin#rust#go#c##swift#pascal#nim#lua

Fenster: Most minimal cross-platform GUI library

fenster — сверхкомпактная кроссплатформенная GUI-библиотека.

  • Особенности:

    • Окно, пиксельный буфер, ввод с клавиатуры/мыши.
    • Один .h файл, ~400 LOC, зависимости: X11 (Linux), Cocoa (macOS), Win32 (Windows).
    • Поддержка C/C++, Zig, Odin, Rust, Go, JS (WASM), C#, Swift, Pascal, Nim, Lua, Python, Ruby, OCaml, Fortran.
  • Быстрый старт (C):

#define FENSTER_IMPL
#include "fenster.h"
int main() {
  struct fenster f = {.width = 320, .height = 240, .title = "demo"};
  uint32_t buf[320*240];
  for (fenster_open(&f); fenster_loop(&f) == 0; ) {
    // рисуем
    fenster_sync(&f, buf);
  }
  return 0;
}
  • Сборка: cc demo.c -o demo (Linux: -lX11, macOS: -framework Cocoa, Windows: без флагов).

  • API (C):

    • fenster_open, fenster_close, fenster_loop, fenster_sync.
    • Поля: width, height, title, keys[64], mouse.
  • Лицензия: MIT.