rust-dominator
rust-rdom
rust-dominator | rust-rdom | |
---|---|---|
10 | 4 | |
933 | 41 | |
- | - | |
5.0 | 7.8 | |
5 months ago | over 2 years ago | |
Rust | Rust | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rust-dominator
-
A Proposal for an asynchronous Rust GUI framework
They are both async and made for GUI -- in case of rust-signals WebGUI, provided by dominator and MoonZoon.
-
Why Rust?
You shouldnāt ever need to deal with OsString itself on wasm32-unknown-unknown, since that target basically just doesnāt cover functionality that needs it, but the actual situation is genuinely worse than OsString: Rust insists on valid Unicode (as is right and proper), but the web suffers from the affliction of ill-formed UTF-16. If you blindly convert from JavaScript strings to Rust strings, you will encounter data and functionality loss in a few situations, in practice always involving IME (or similar) text entry on Windows. The first bug I filed about this: https://github.com/Pauan/rust-dominator/issues/10, and you can follow further links if youāre interested. IE and Edge used to be largely immune to this, but IE is dead and I suppose Edge will have regressed in this way with the Chromium migration, since the bug filed in Chromium a few years ago <https://bugs.chromium.org/p/chromium/issues/detail?id=949056> has languished. (Firefox too, with <https://bugzilla.mozilla.org/show_bug.cgi?id=1541349>.) In the worst-case scenario, careless use like was the case in rust-dominator will mean that some users typing with particular software in a language thatās outside the Basic Multilingual Plane will not be able to type anything.
-
Xilem: an architecture for UI in Rust
One comparison I'm missing , which I think provides quite a nice solution in Rust, is the signals based approach popularized by Solid JS and implemented in Rust by sycamore and earlier by dominator.
-
So Long Surrogates: How We Moved to UTF-8 in Haskell
Missing support for characters beyond U+FFFF is the main problem caused by surrogates (their existence, even if indirect)āit normally comes of some kind of UCS-2/UTF-16 confusion. Itās not fair to disqualify them. The only (class of) case that Iām aware of for a long time where itās not linked to that is with MySQLās idiotic utf8 ā utf8mb3 type.
You may not have encountered such bugs, but Iām very familiar with surrogate-related bugs, because I use a Compose key extensively. I havenāt been using Windows for the last year, but from time to time I would definitely encounter bugs that are certainly due to surrogates. On the web, I found bugs a few times, all but once in Rust WebAssembly things, such as https://github.com/Pauan/rust-dominator/issues/10. And even now Iām back on Linux, I know of one almost certainly surrogate-related bug: I canāt type astral plane characters in Zoom at all; pretty sure I had this problem back on Windows, too. Copy and paste, sure, but type, no, they become REPLACEMENT CHARACTER.
The history is unfortunate but I strongly refute that they had not much choice. UCS-2 should have been abandoned as a failed experiment. Certainly there had been significant investment into it in the last few years, but with the benefit of hindsight, switching to UTF-8 (which was invented before they decided on surrogates) would have made everyoneās life much easier, especially given its ASCII-compatibility.
Ah, BOM characters. Havenāt seen one in years. Good riddance.
-
A Rust server / frontend setup like it's 2022 (with axum and yew)
I really don't understand why everyone jumps to Yew when it comes to front-end development. Dominator is a far cleaner and more Rust-orientated approach to building front-end apps. I have worked with both and I feel that Yew adds a lot complexity/forces a lot of design philosophies but gives very little back in terms of advantages.
-
Announcing Silkenweb v0.2.0: A crate for building web apps using WebAssembly
Hi, I've just released a major new version of Silkenweb. It's a signals based web framework like Dominator or Sycamore, but with the emphasis on plain rust syntax rather than a macro DSL.
-
Front-end Rust framework performance prognosis
Check out the alternatives without vdom, especially Dominator https://github.com/Pauan/rust-dominator. Itās faster than nearly all JS frameworks. The underlying rust-signals itās based on is a fantastic crate. Unfortunately itās not very well documented (check the prs for some wip docs). I got a frontend up and going with reactivity and nice styles using trunk and tailwindcss with daisyUI very quickly.
- Seed ā A Rust front-end framework for creating fast and reliable web apps
-
Rust on the front-end
- https://github.com/Pauan/rust-dominator
-
Introducing maple, a VDOM-less fine grained reactive web framework running in WASM
How does this compare to dominator?
rust-rdom
-
Seed ā A Rust front-end framework for creating fast and reliable web apps
There are two steps there: (1) rust-rdom working enough to be used by Yew, and (2) SSR support built out in Yew utilizing rust-rdom. Part (2) is pretty far away, but (1) is probably about halfway there. I think a more realistic use-case for the library is Sycamore which is much earlier and simpler than Yew. Sycamore support has a tracking issue here: https://github.com/rust-rdom/rust-rdom/issues/15
-
Call for collaborators - rdom (DOM in pure Rust)
Hey, thanks for the suggestion. It already is largely generated - if you look at https://github.com/philip-peterson/rust-rdom/blob/a805f9439c380b3bf8b02572197a6b81eb425516/src/node/raw/mod.rs#L145 everything up to line 145 is basically defining the templates and then afterward is just instantiating that template for the different node types, with a few one-off customizations like for Document. The same is done in a few other places.
What are some alternatives?
sycamore - A library for creating reactive web apps in Rust and WebAssembly
daisyui - š¼ š¼ š¼ š¼ š¼ āThe most popular, free and open-source Tailwind CSS component library
Seed - A Rust framework for creating web apps
svgbobrus - Convert your ascii diagram scribbles into happy little SVG
solid - A declarative, efficient, and flexible JavaScript library for building user interfaces.
dropshot - expose REST APIs from a Rust program
solid - A declarative, efficient, and flexible JavaScript library for building user interfaces. [Moved to: https://github.com/solidui/solid]
sauron - A versatile web framework and library for building client-side and server-side web applications
Svelte - Cybernetically enhanced web apps
symbolicator - Native Symbolication as a Service