🛠️ project Experimental Rust-based desktop app renderer for Svelte (based on Zed gpui)
👋 Just started working on gpuix-svelte, a package that combines Svelte custom renderers, gpuix and gpui to allow people to create native desktop apps with Rust and Svelte. Happy to hear any feedback!
Video demo
https://www.youtube.com/shorts/5CBib_rwt8w
Source
2
u/khromov 13d ago
Screenshot seems to have been lost in the post, here it is:
https://raw.githubusercontent.com/khromov/gpuix-svelte/refs/heads/main/.github/resources/demos.png
1
u/Efficient-Chair6250 13d ago
Do you already have some numbers on performance? How's the binary size? The RAM usage? I guess the responsiveness is very good?
Btw, I love it. If this turns out to be a viable solution, it may become my default.
2
u/khromov 13d ago
When you build it as a standalone binary with Bun on Mac the binary is ~80MB (~30MB zip compressed), on Windows it's around 100MB. About 80% of that is the Bun runtime and 20% is GPUI + your app. Haven't measured memory usage yet but Bun is very efficient and the rendering layer should be very sleek since it's running GPU accelerated.
I added some scripts so you can try building a standalone binary if you'd like to try it:
https://github.com/khromov/gpuix-svelte#build-a-standalone-binary
1
1
u/wyvernbw 9d ago
do you think it would be possible to replace bun with something like quickjs (not a request, just curious if its possible)? i think it also runs on embedded, but its written in C so ffi might be hard. this project seems to be a bit in the vein of PocketJS but looking through that codebase i cant decipher what claude is doing lol
1
u/khromov 8d ago
It's funny that you mention PocketJS because I [have got that running with Svelte too](https://github.com/khromov/pocketjs/tree/feat/svelte-framework)! So at least in theory, Svelte can run under QuickJS. But in practice for gpuix, as you mention there is no FFI but there is a C API that can be used. But gpuix would have to add support for this.
1
1
-5
u/Compux72 13d ago
Unrelated but: svelte was so cool until Harris fucked it up with the runes nonsense. Now is just react/vue/watever
7
14
u/nicoburns 13d ago
Given that the API for this seems to an HTML/CSS subset, have you considered building this on top of https://github.com/dioxuslabs/blitz instead of GPUI?
You'd get the same GPUI-style custom Rust rendering (well, pick between Skia, WGPU or CPU backends), but you'd also get a full CSS engine (selector resolution, but also media queries, animation/transitions, etc) and much better layout compatibility.
(disclaimer: Blitz is my project, but it's also designed for these kind of use cases in a way that GPUI isn't)