SPACE.LA
◀ music select
personal / library / archived

egui Neon

Neon-based Node/Bun bindings for egui with a TypeScript API, event listeners and a React-like virtual DOM layer for building native immediate-mode UIs from JavaScript. Follow-up to egui-ffi two days later.

BPM
136
GRADE
B
LEVEL
5
RELEASES
0
YEARS
2025–2025

Native Windows From JavaScript

This one wired egui up through Neon bindings instead of raw FFI. One day, May 2025.

The goal was two-way communication between JavaScript and Rust, working under both Bun and Node, with proper main thread handling on macOS, which was the hard part. On top of the bindings I put a React-like virtual DOM API, because once I could draw a window from TypeScript I wanted components. The quick start is a class called EguiReactive: initialize it, add an event listener for counter_updated, push a message, increment, then call runWindow and block until the window closes.

It's a counter and a list of messages, which is how all my UI experiments start.

It lasted a day, and it kicked off a year of trying JavaScript on top with native rendering underneath. Benedict, UI Gateway, VUI, and eventually tish-egui all came out of that.

led to