dew 0.1.3
Modern retained-mode GUI for D: typed DSL, CTFE markup, flex layout, Vello 2D + wgpu 3D, tgc-friendly
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
ifndef::env-github[:icons: font] :toc: preamble :toclevels: 2 :sectanchors:
ifdef::env-github[] ++++ <a id="readme-top"></a> <div align="center"> <a href="https://code.dlang.org/packages/dew"><img src="https://img.shields.io/dub/v/dew.svg?style=for-the-badge" alt="Dub version"></a> <a href="https://github.com/dlang-supplemental/dew/graphs/contributors"><img src="https://img.shields.io/github/contributors/dlang-supplemental/dew.svg?style=for-the-badge" alt="Contributors"></a> <a href="https://github.com/dlang-supplemental/dew/network/members"><img src="https://img.shields.io/github/forks/dlang-supplemental/dew.svg?style=for-the-badge" alt="Forks"></a> <a href="https://github.com/dlang-supplemental/dew/stargazers"><img src="https://img.shields.io/github/stars/dlang-supplemental/dew.svg?style=for-the-badge" alt="Stars"></a> <a href="https://github.com/dlang-supplemental/dew/issues"><img src="https://img.shields.io/github/issues/dlang-supplemental/dew.svg?style=for-the-badge" alt="Issues"></a> <a href="https://github.com/dlang-supplemental/dew/blob/main/LICENSE"><img src="https://img.shields.io/github/license/dlang-supplemental/dew.svg?style=for-the-badge" alt="License"></a> <br /> <h3 align="center">dew</h3> <p align="center"> <strong>Dew it!
ifndef::env-github[] = dew
Dew it! — Modern retained-mode GUI engine for D.
Typed DSL + CTFE markup, flex layout, Vello 2D GPU and wgpu 3D embeds, tgc-friendly.
link:https://dlang-supplemental.github.io/docs/[Explore the docs »] endif::[]
Package name on DUB: dew. App-kit companion: link:https://github.com/dlang-supplemental/dui[dui].
== Migration from rmgui
The legacy DUB package `rmgui` was removed from https://code.dlang.org/[code.dlang.org]. Use `dew` only:
[source,powershell]
dub add dew
The GitHub repo was renamed to link:https://github.com/dlang-supplemental/dew[dlang-supplemental/dew] (old …/rmgui URLs redirect). Import module dew, not rmgui.
== About
dew is the retained-mode UI engine:
- Pure D typed DSL (Compose/SwiftUI-style) as the canonical AST
- CTFE markup (Slint/QML-inspired) that lowers into the same DSL
- Adapters for Slint, QML, KDL, RSX, UXML, JSX, Godot
.tscn, RON, JSON - Flex layout over contiguous POD nodes / arenas
- 2D GPU: link:https://code.dlang.org/packages/vello-d[
vello-d] (registry) - 3D embeds: link:https://code.dlang.org/packages/bindbc-wgpu[
bindbc-wgpu] - `tgc`: thread-local GC so domain threads do not stop-the-world the UI loop
Higher-level state / app sugar lives in `dui` (depends on dew).
== Configurations
|=== | Config | Use
| library / headless | Software paint + stubs; CI (no Rust/MSVC link)
| gpu | Registry vello-d + bindbc-wgpu for real GPU hosts
|===
[source,powershell]
dub add dew dub build -c gpu dub test -c headless
Windowed Vello (GLFW + VelloRenderBackend): examples/vello-window — needs MSVC link.exe and Rust/cargo (see that example's README). Headless gallery: examples/gallery.
== Quick start
[source,d]
import dew;
void main() {
UiBuilder b;
beginUi(b);
scope(exit) endUi();
auto root = VStack(
Text("Hello").fontSize(18).bold(),
Button("OK").onClick(() {})
).spacing(8);
App app;
app.ui = b;
app.setRoot(root);
app.backend = new SoftwareBackend(800, 600);
app.frame();
}
== Roadmap
Unfinished work and near-term priorities: link:ROADMAP.adoc[ROADMAP.adoc].
== Changelog
See link:CHANGELOG.adoc[CHANGELOG.adoc].
== License
BSL-1.0 — see link:LICENSE[LICENSE].
- 0.1.3 released 12 hours ago
- dlang-supplemental/dew
- BSL-1.0
- Copyright © 2026, dlang-supplemental contributors
- Authors:
- Dependencies:
- tgc
- Versions:
-
Show all 5 versions0.1.3 2026-Aug-25 0.1.2 2026-Aug-25 0.1.1 2026-Aug-25 0.1.0 2026-Aug-25 ~main 2026-Aug-25 - Download Stats:
-
-
37 downloads today
-
37 downloads this week
-
37 downloads this month
-
37 downloads total
-
- Score:
- 0.3
- Short URL:
- dew.dub.pm