Rust bindings to libui, a minimalist native cross-platform UI toolkit for building desktop applications.
iui is a Rust library that provides bindings to the libui C library, enabling developers to create native, cross-platform desktop GUI applications. It wraps platform-native APIs like Win32API, Cocoa, and GTK+ to ensure applications have an authentic look and feel on Windows, macOS, and Linux while maintaining consistency across platforms.
Rust developers who need to build lightweight, native desktop GUI applications that run consistently on Windows, macOS, and Linux without significant platform-specific adjustments.
Developers choose iui for its simplicity, small footprint (about 800kb including libui), and safe, idiomatic Rust API that leverages native UI libraries for performance and integration, minimizing behavioral inconsistencies across platforms with minimal effort.
Rust bindings to the minimalist, native, cross-platform UI toolkit libui
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Win32API, Cocoa, and GTK+ to ensure applications have an authentic look and feel, with high performance and seamless integration on each OS.
Implements only the least common subset of native APIs, minimizing behavioral inconsistencies across Windows, macOS, and Linux with no extra developer effort.
The library is about 4 kLOC of Rust code and 800kb in size including libui, making it easy to learn and deploy for small to medium applications.
Provides an idiomatic Rust interface with concurrency protections for callbacks, reducing common GUI programming pitfalls in a memory-safe way.
Due to focusing on the least common denominator of platform APIs, it lacks advanced widgets and features found in more comprehensive GUI toolkits.
The trunk branch is noted as potentially broken with often-changing APIs, which can be risky for production use or long-term maintenance.
Relies on libui as a submodule, which may introduce build complexities or issues if libui itself is not actively maintained or has platform-specific bugs.