Guilite is a header-only GUI library for C++ that runs on all platforms from desktop operating systems to microcontrollers without an operating system.
The library solves the problem of building graphical interfaces on resource-constrained embedded systems and microcontrollers where traditional GUI frameworks are too large. It achieves this through an extremely compact codebase of approximately four thousand lines of C++, with zero external dependencies. The approach uses only basic C++ features like classes and virtual functions, keeping the implementation straightforward while maintaining high rendering performance even on devices with minimal hardware resources.
Guilite suits projects targeting embedded systems, IoT devices, and microcontrollers where memory and storage are severely limited, as well as desktop applications where a lightweight alternative to heavier frameworks is preferred. The tool works on Windows, Linux, macOS, iOS, Android, and bare-metal microcontrollers, and can integrate alongside existing frameworks like Qt, MFC, Winforms, and Cocoa rather than replacing them. It supports multiple programming languages including C, C++, Swift, Java, Javascript, C#, and Golang. The library includes features for multi-language support with UTF-8, video playback, real-time code telemetry, and web deployment options. A toolkit for building font and image resources and a WYSIWYG layout previewer are available separately.
The project maintains active documentation covering core concepts, widget layout, message dispatching, and resource building. Development follows a structured learning path from building the library through modifying demo code and widget implementations to building custom frameworks. The codebase uses only fundamental C++ constructs intentionally chosen to keep the implementation accessible to developers with basic language knowledge.