dew ~main

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].

Pointer note: button onClick fires on pointer Up (within slop, and not after a drag). Hosts should forward Move/Up/Cancel, not only Down.

== 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].

Authors:
  • amdphreak
Dependencies:
tgc
Versions:
0.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
Show all 5 versions
Download Stats:
  • 37 downloads today

  • 37 downloads this week

  • 37 downloads this month

  • 37 downloads total

Score:
0.3
Short URL:
dew.dub.pm