An experimental Rust-native UI toolkit focused on data-first design and polished desktop applications.
Druid is an experimental Rust-native UI toolkit designed for building polished desktop applications with a data-first architecture. It provides a widget library, platform abstraction via druid-shell, and leverages the Piet graphics library for rendering. The project is now discontinued, with development moving to its successor, Xilem.
Rust developers interested in building native desktop applications with a focus on performance, cross-platform compatibility, and a rich user experience.
Developers chose Druid for its data-driven design, seamless platform integration, and comprehensive widget system, offering a robust foundation for desktop GUI development in Rust without relying on platform-native widgets.
A data-first Rust-native UI design toolkit.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Widgets are parametrized by application data types via the Data trait, enabling reactive updates and simplifying state management without manual event handling.
Uses druid-shell for a consistent event loop and runloop across macOS, Linux, Windows, and web via Piet backends, ensuring native integration without platform quirks.
Provides a flexible set of layout and utility widgets with easy composition, as shown in the counter example, and supports custom widget creation through the Widget trait.
Leverages the Piet library for high-quality 2D drawing and text layout with multiple backends like CoreGraphics and Direct2D, offering reliable rendering performance.
Development has officially stopped in favor of Xilem, meaning no new features, bug fixes, or security updates, making it unsuitable for new or long-term applications.
Admits to lacking accessibility support and 3D graphics capabilities in the README, limiting its use for modern, inclusive desktop applications that require these standards.
Requires external dependencies like GTK+3 on Linux, which complicates installation and deployment compared to more self-contained Rust GUI alternatives.