3 ms·
> most folks who might be interested in writing desktop apps with Rust probably aren’t coming from a web background, but instead from old school desktop UI fram
by nicoburns 9mo ago
> most folks who might be interested in writing desktop apps with Rust probably aren’t coming from a web background, but instead from old school desktop UI frameworks
You'd be surprised. A lot of people migrating to desktop apps are people coming from a web background (this is after all by far the largest pool of UI developers) who want something more efficient than electron.
- vlovich123 9mo ago“More efficient” is relative. While tauri and dioxus can lower the install size, they’re not going to be meaningfully more efficient than electron for memory usage or speed since Chrome probably does better than the other frameworks, and consistently across OSes which dioxus and tauri struggle with since they are dependent on the host OS’s web implementation. Slint is interesting here but then it’s more rust and less web coding.
- nicoburns 9mo agoOh, "more efficient" here isn't a refence to Tauri. It's a reference to the parent comment's mention of "(AppKit, win32, GTK, Qt, etc)". I work on a framework (Dioxus Native) which I think sits at an interesting intersection of "rust" and "web": it renders using HTML/CSS (custom implementation, not using a webview) but it uses Rust scripting instead of JavaScript.
- vlovich123 9mo agoWhat's "rust scripting"? I don't see any mention of it in the docs nor dioxus native roadmap and AFAIK https://github.com/DioxusLabs/dioxus/tree/main/packages/interpreter https://github.com/DioxusLabs/dioxus/tree/main/packages/inte... is used as the interpreter although I can't for the life of me figure out where the JS engine is actually instantiated.
- nicoburns 9mo ago"rust scripting" is using AOT compiled Rust code to control dynamic behaviour within the app. Dioxus's "native" backend does not use a JS engine. Most of the code for Dioxus Native is in https://github.com/DioxusLabs/blitz https://github.com/DioxusLabs/blitz. And the Roadmap is at https://github.com/DioxusLabs/blitz/issues/119 https://github.com/DioxusLabs/blitz/issues/119 "interpreter.js" is for Dioxus's "web" backend which runs in browsers (who instantiate the JS engine). All it does is interpret "patch commands" to apply DOM mutations.