awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
linebender avatar

linebender/druid

0
View on GitHub↗
linebender.org/druid↗

Druid

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.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Features

  • Cross-Platform GUI Toolkits - Functions as a comprehensive framework for building graphical user interfaces across Linux, macOS, and web browsers.
  • Cross-Platform UI Toolkits - Provides a complete toolkit for building native-like GUIs from a single codebase for Linux, macOS, and the web.
  • Data-Driven UI Libraries - Functions as a data-driven framework that synchronizes global application state with the visual layout using lenses.
  • Custom Shape Rendering - Provides a 2D graphics engine for rendering vector shapes and lines directly onto the window using a paint context.
  • 2D Rendering Engines - Ships a rendering engine for drawing vector paths, shapes, and text layouts across multiple backends.
  • Data-View Synchronizers - Automatically synchronizes user interface elements when the underlying data model changes.
  • State Mapping - Uses functional lenses to map specific subsets of global application state to individual widgets.
  • Cross-Platform Abstractions - A common interface for interacting with different application frameworks while hiding backend-specific implementation details.
  • Custom Widget Definitions - Allows developers to define bespoke UI components by implementing standard traits for event handling, layout, and painting.
  • Custom Widget Implementation - Allows for the design of specialized interface components by implementing custom logic for layout, events, and rendering.
  • State-Synchronized Bindings - Automatically synchronizes UI elements with application state changes through reactive bindings.
  • Desktop Applications - Provides a framework specifically for building cross-platform desktop GUI applications.
  • Event-Driven UI Frameworks - Utilizes an architectural pattern where UI state and interactions are managed through a system of commands and messages.
  • DOM Event Listeners - Provides mechanisms to attach listeners to interface elements that execute logic upon user interaction.
  • Rust Native Toolkits - Provides a data-first native UI framework implemented specifically for the Rust programming language.
  • Retained State UI Frameworks - Maintains a persistent tree of widgets that automatically updates the view when state changes.
  • Constraint Based Layouts - Implements a constraint-based box layout system where components negotiate dimensions based on parent-provided constraints.
  • Widget Data Bindings - Connects application data sources directly to interface elements to isolate state updates.
  • Native Windowing - Manages the lifecycle of native application windows, including system menus and file dialogs.
  • Linux UI Rendering - Renders user interfaces on Linux distributions using X11 or Wayland windowing protocols.
  • Abstraction-Layer Rendering Backends - Implements an abstraction layer that decouples 2D scene logic from specific native graphics APIs.
  • Main Axis Alignment - Positions child components along primary layout axes using configurable distribution and alignment rules.
  • Input Event Loops - Implements a non-blocking event loop to handle window and input interactions across platforms.
  • Widget Composition Traits - Defines UI components by implementing standard traits for event handling, layout, and rendering.
  • Asynchronous Event Dispatchers - Implements systems to offload event handler execution to managed thread pools to prevent blocking the UI.
  • Platform Abstraction Layers - Decouples application logic from native operating system windowing and input event lifecycles.
  • Dynamic List Rendering - Supports efficient rendering of data collections that automatically update the view when items are modified.
  • Event Routing Systems - Provides a mechanism for routing targeted commands to specific widgets within the UI element tree.
  • Layout Composition Frameworks - Enables the construction of complex interfaces by nesting widgets, flex containers, and custom painters.
  • Content State Toggling - Provides the ability to toggle between different UI components based on boolean state values to handle various application statuses.
  • Native Event Streams - Bridges native OS event streams into a standard representation for the UI framework.
  • macOS Renderers - Utilizes native macOS graphics tools for hardware-accelerated user interface rendering.
  • Targeted Widget Messaging - Enables sending targeted instructions to specific widgets using unique identity identifiers.
  • Vector Graphics Rendering - Provides high-fidelity rendering of scalable vector graphics as native widgets within the UI.
  • Multi-Window Controllers - Supports the creation and coordination of multiple independent native windows within a single application session.
  • Window Lifecycle Controllers - Provides APIs for managing the lifecycle of native windows, including their creation, focus, and termination.
  • Web-Based UI Deployment - Enables compilation and execution of native user interface applications within web browsers.
  • UI Rendering Engines - Employs a WebAssembly-based engine to render consistent user interfaces across browsers.
  • UI Frameworks - Data-first gui design toolkit.
9,710 stars·564 forks·Rust·Apache-2.0·34 views

Star history

Star history chart for linebender/druidStar history chart for linebender/druid

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Projects sharing features with Druid

These projects share indexed features with Druid. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • hoffstadt/dearpyguihoffstadt avatar

    hoffstadt/DearPyGui

    15,217View on GitHub↗

    DearPyGui is a GPU-accelerated, immediate-mode graphical user interface framework for Python. It provides a high-performance toolkit for building interactive desktop applications by leveraging native hardware-accelerated rendering backends across multiple operating systems. By utilizing an immediate-mode execution model, the library offers direct control over the rendering loop and element state, enabling the creation of responsive, dynamic interfaces. The framework distinguishes itself through its ability to handle complex, high-frequency visual updates, making it suitable for real-time data

    C++cppcross-platformdearpygui
    View on GitHub↗15,217
  • andlabs/uiandlabs avatar

    andlabs/ui

    8,357View on GitHub↗

    This project is a cross-platform UI framework and native desktop GUI library. It provides a unified set of instructions to render native windows, forms, and layouts across different operating systems by mapping high-level instructions to the native widgets and controls of the host environment. The toolkit includes a vector graphics engine for rendering custom shapes, gradients, and high-density images using brushes and matrices. It also serves as a native dialog provider for system-level operations such as file path selection and message box alerts. The library covers a broad range of GUI co

    Go
    View on GitHub↗8,357
  • slint-ui/slintslint-ui avatar

    slint-ui/slint

    22,987View on GitHub↗

    Slint is a declarative user interface framework designed for building native graphical applications across desktop, mobile, and embedded platforms. It utilizes a specialized markup language to define reactive interface components, which are then compiled into optimized machine code to ensure high performance and minimal resource consumption. By separating visual structure from application logic, the framework enables developers to create consistent interfaces that run efficiently on hardware ranging from resource-constrained microcontrollers to high-end desktop systems. The framework distingu

    Rustcppdeclarative-uidesktop
    View on GitHub↗22,987
  • fyne-io/fynefyne-io avatar

    fyne-io/fyne

    27,941View on GitHub↗

    Fyne is a cross-platform graphical user interface toolkit for the Go programming language. It provides a comprehensive framework for building native applications that run on desktop, mobile, and web environments from a single codebase. The toolkit centers on a canvas-based rendering engine and a device-independent layout engine, ensuring that visual elements maintain consistent dimensions and behavior across diverse operating systems and screen densities. The project distinguishes itself through a reactive data-binding system that automatically synchronizes application state with interface co

    Goandroidcross-platformfyne
    View on GitHub↗27,941
Compare all 30 related projects→

Frequently asked questions

What does linebender/druid do?

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.

What are the main features of linebender/druid?

The main features of linebender/druid are: Cross-Platform GUI Toolkits, Cross-Platform UI Toolkits, Data-Driven UI Libraries, Custom Shape Rendering, 2D Rendering Engines, Data-View Synchronizers, State Mapping, Cross-Platform Abstractions.

Which projects share features with linebender/druid?

Projects with overlapping indexed features include: hoffstadt/dearpygui — DearPyGui is a GPU-accelerated, immediate-mode graphical user interface framework for Python. It provides a… andlabs/ui — This project is a cross-platform UI framework and native desktop GUI library. It provides a unified set of… slint-ui/slint — Slint is a declarative user interface framework designed for building native graphical applications across desktop,… fyne-io/fyne — Fyne is a cross-platform graphical user interface toolkit for the Go programming language. It provides a comprehensive… holoviz/panel — Panel is a Python data application framework used to build interactive dashboards and reactive user interfaces by… linebender/xilem — Xilem is a native user interface framework for the Rust programming language. It provides a reactive view tree that…