egui-reactive-js
Binds Rust's egui immediate-mode GUI to JavaScript through Neon, so native desktop UIs can be driven from Bun/TypeScript without IPC. It led to egui-vdom and Gouda.
- BPM
- 140
- GRADE
- B
- LEVEL
- 5
- RELEASES
- 0
- YEARS
- 2025–2025
Native Windows From TypeScript
On May 1, 2025 I started on a question that took most of the month: could I drive a real native desktop window from TypeScript, without an embedded browser and without IPC?
The first thing I tried was egui, the Rust immediate mode toolkit, wired to Bun through Neon. Rust renders the UI, Neon exposes the functions, and TypeScript calls straight into them. No process boundary, no message serialization, no Electron. It ended up kind of like GTK with JavaScript bindings. The API was simple: make an EguiApp, start it, setLabel, createButton with a callback, createTextInput with a callback.
It wasn't quite right, and I knew that within a week. Immediate mode with a callback API doesn't match how people write UI now, so three days later I started egui-vdom to try a virtual DOM, and then egui-ffi to strip the bridge way down. All of it eventually became Gouda. This was the first sketch, four days before tumeric, and it came from the same place: lots of great stuff is in Rust now, and I wanted to reach it from the language I already write every day.
led to
- tish-egui2026egui driven from JavaScript