A cross-platform GUI toolkit for the D programming language, featuring widgets, layouts, themes, and OpenGL acceleration.
DlangUI is a cross-platform graphical user interface toolkit for the D programming language. It provides widgets, layouts, styles, and themes to build native desktop applications for Windows, Linux, macOS, and Android. The library solves the need for a modern, performant GUI framework in the D ecosystem.
D developers seeking to build desktop applications with native look and feel across multiple operating systems. It's particularly useful for those familiar with Android's UI patterns.
Developers choose DlangUI for its Android-inspired API, which reduces the learning curve, and its optional OpenGL acceleration for high-performance rendering. As a native D solution, it integrates seamlessly with the language's toolchain and offers extensive theming and internationalization support.
Cross Platform GUI for D programming language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports Windows, Linux, macOS, and Android with a single codebase, enabling consistent application behavior across operating systems as highlighted in the features.
Uses layouts, styles, and a two-phase layout system similar to Android, reducing the learning curve for developers familiar with mobile UI patterns.
XML-based themes and styles allow deep visual customization, including state substyles and hierarchical inheritance, as described in the README.
Provides an OpenGL backend for improved rendering performance, with fallback to software rendering when needed, enhancing flexibility for performance-critical applications.
The README explicitly states that macOS support is theoretical and not guaranteed, making it risky for development on Apple platforms.
All UI operations must be performed in a single thread, limiting scalability and concurrency for applications requiring background processing or real-time updates.
Requires manual installation of platform-specific libraries like SDL2 and FreeType, and frequent dub upgrades to resolve dependency issues, adding setup overhead.