The elegant way to build cross-platform applications with native performance.


Warning
For production code disable address sanitizer, it will cause high memory usage.
Features
- Cross-Platform: Write once, build anywhere (Windows, Linux)
- Lightweight: Minimal footprint with maximum functionality
- Customizable: Tailor every aspect of your UI
- Minimal Dependencies: Built with minimal dependencies
- Pure C: Portable code perfect for embedded solutions
- Community Driven: Open-source under GPL v2 license
Quick Start
Installation
Download the latest release from our GitHub Releases page.
Basic Example
#include <Gooey/gooey.h>
int main()
{
GooeyWindow *win = GooeyWindow_Create("My Window", 400, 400, true);
GooeyWindow_RegisterWidget(win, label_0);
GooeyWindow_Run(1, win);
GooeyWindow_Cleanup(1, win);
return 0;
}
int Gooey_Init()
Initializes the Gooey system with the specified backend.
GooeyLabel * GooeyLabel_Create(const char *text, float font_size, int x, int y)
Creates a Label.
Documentation
Explore our comprehensive documentation:
Building from Source
- Clone the repository:
git clone https://github.com/GooeyUI/GooeyGUI.git GooeyGUI
cd GooeyGUI
- Get Submodules:
git submodule init
git submodule update --remote --merge
- Build the library:
cmake -S . -B build
cd build && make
# Install if you encounter missing packages
sudo apt install libdrm-dev libgbm-dev libegl-dev libgl-dev libwayland-dev libxkbcommon-dev mesa-utils
- Install (optional):
- Building a example
gcc example.c -o example -L/usr/local/lib/ -lfreetype -lGooeyGUI -lGLPS -lm -I/usr/local/include/ -fsanitize=address,undefined && ./example
Contributing
We welcome contributions!
License
Gooey is released under the GNU General Public License v2.0.
Community
Join our growing community:
Special Thanks
To all our contributors who help make Gooey better!
© 2025 Gooey GUI Library | Website