A declarative GUI toolkit for Bun, built on GLFW + MiniAudio + OpenGL.
# macOS
gcc -dynamiclib -O3 stb_truetype.c -o libtruetype.dylib -lm
# Linux
gcc -shared -fPIC -O3 stb_truetype.c -o libtruetype.so -lm
# Windows (MinGW)
gcc -shared -O3 stb_truetype.c -o truetype.dll -lm# macOS
gcc -dynamiclib -O3 stb_image.c -o libimage.dylib -lm
# Linux
gcc -shared -fPIC -O3 stb_image.c -o libimage.so -lm
# Windows (MinGW)
gcc -shared -O3 stb_image.c -o image.dll -lm# macOS
gcc -dynamiclib -O3 miniaudio.c -o libminiaudio.dylib -lm -framework CoreAudio -framework AudioToolbox -framework CoreFoundation
# Linux
gcc -shared -fPIC -O3 miniaudio.c -o libminiaudio.so -lm -lpthread -ldl
# Windows (MinGW)
gcc -shared -O3 miniaudio.c -o miniaudio.dll -lm -lksuser -lwinmmThe FFI bindings are generated from Clang AST JSON dumps. Place the headers in the project root and run:
# GLFW
clang -Xclang -ast-dump=json -fsyntax-only glfw3.h > assets/glfw3.json
# stb_truetype (font rasterizer)
clang -Xclang -ast-dump=json -fsyntax-only stb_truetype.h > assets/stb_truetype.json
# stb_image
clang -Xclang -ast-dump=json -fsyntax-only stb_image.h > assets/stb_image.json
# miniaudio (audio)
clang -Xclang -ast-dump=json -fsyntax-only miniaudio.h > assets/miniaudio.json
# FreeType (optional)
clang -Xclang -ast-dump=json -fsyntax-only freetype2/freetype/freetype.h > assets/freetype.jsonThe FFI bindings are generated from Clang AST JSON dumps. Place the headers in the project root and run:
# GLFW
gcc -dM -E glfw3.h > assets/glfw3.macros
# stb_truetype (font rasterizer)
gcc -dM -E stb_truetype.h > assets/stb_truetype.macros
# stb_image
gcc -dM -E stb_image.h > assets/stb_image.macros
# miniaudio (audio)
gcc -dM -E miniaudio.h > assets/miniaudio.macros
# FreeType (optional)
gcc -dM -E freetype2/freetype/freetype.h > assets/freetype.macrosbun run build:glfw # GLFW + OpenGL bindings
bun run build:miniaudio # MiniAudio bindings
bun run build:freetype # FreeType bindings
bun run build:truetype # stb_truetype bindings
bun run build:image # stb_image bindingsbun install # Install dependencies
bun run src/index.ts # Run the demo app