Druid is a native user interface toolkit and 2D graphics engine for the Rust programming language. It functions as a retained-mode, data-driven framework for building graphical user interfaces that run across Linux, macOS, and web browsers via WebAssembly.
The toolkit distinguishes itself through a data-first approach to UI design, utilizing lenses to isolate subsets of global application state and synchronize them with specific widgets. This allows the visual layout to update automatically when the underlying data model changes.
Its capability surface includes a constraint-based box layout system for component positioning, a platform-abstraction layer for native event handling, and a vector graphics engine for drawing shapes and text. The framework also covers desktop window management, including multi-window coordination, system file dialogs, and hierarchical application menu systems.