Rivet embeds the Racket CS runtime inside first-party native apps: WinUI 3 on Windows, SwiftUI on macOS — with typed RPC, events, shared state, cancellation and lifecycle over one contract.
There was no direct path from a Racket backend to the modern first-party desktop stacks. Rivet fills that gap.
WinUI 3 on Windows, SwiftUI/AppKit on macOS — each platform stays itself.
Typed RPC, events, shared state, cancellation and lifecycle over the same RVT1 protocol.
raco rivet build generates typed Swift and C++ APIs from your declarations.
The Racket runtime lives inside the application process — no external backend to manage.
Rivet stages the installed Racket CS runtime and never silently falls back to a nearby version.
The native side only sees framed RVT1 messages and generated values.
The Racket desktop stack: Rivet, Glaze, Bezel, Tessera — different trade-offs, not replacements for one another.
| Rivet | Glaze | Bezel | Tessera | |
|---|---|---|---|---|
| UI stack | WinUI 3 / SwiftUI | HTML/CSS/JS + WebView | Qt 6 Widgets | custom GPU-rendered |
| Native widgets | first-party OS UI | no | Qt widgets | custom drawn |
| One UI codebase | no | yes | yes | yes |
| Best fit | platform-native commercial apps | web-tech desktop apps | traditional cross-platform GUI | fully custom declarative UI |