Replies: 7 comments
-
Here are some other options that were discussed in this week's office hours: Dioxus adopts a different syntax from html more like react-native/FreyaWe could adopt a syntax that is different from HTML to make native renderering more efficient (see react-native). Blitz would then render that syntax instead of HTML Pros:
Cons:
Blitz doesn't continue to exist in any formWe could abandon Blitz and just embrace the webview. Most desktop systems have a webview and browsers have full teams dedicated to maintaining and developing them. Performance isn't great because we need to continue to go through Javascript. A binary protocol in the short term and the wasm component model in the long term could make dioxus-desktop faster. Pros:
Cons:
|
Beta Was this translation helpful? Give feedback.
-
hi! I am going to share my thoughts I don't think
|
Beta Was this translation helpful? Give feedback.
-
The reason I mentioned Chromium is because it is a complete browser unlike Servo which is more complete than Blitz, but far from a full implementation of the spec.
I agree! (To be clear these are just ideas transcribed from the office hours, not necessarily ideas I agree with). I think this is extremely unlikely. The benefits are unclear and it would break huge parts of the ecosystem and throw away a lot of what makes Dioxus easy to learn coming from React.
It is possible that we get close to the performance of native bindings to the browser with a binary protocol. Latency could be an issue with a webview compared to Blitz |
Beta Was this translation helpful? Give feedback.
-
my 2 cents: if you have the time and money, a native renderer would be technical the best solution. However, devices have become more power-full and web engines have come a long way closing the gap. And yes being able to use html/css is a big plus for aome people. My vote would be to keep webviews, but would indeed suggest investigating the option to have a webengine bundled for platforms that dont have webview support. (tvos, embedded?) servo would be the obvious choice out if scope: also some basic builtin components to close the gap to “native” would be helpfull. like viewtransitions and things like: https://tamagui.dev/docs/components/sheet/1.59.0 |
Beta Was this translation helpful? Give feedback.
-
I came across this discussion while searching status of webrender in native platforms. First of all, I am not expert in this area but here are some of things coming to my mind.
I would vote for flutter engine implementation because flutter already developing the engine so we will not have to maintain. |
Beta Was this translation helpful? Give feedback.
-
I've been tinkering with Firefox's CSS engine for style resolution and things are looking decent. https://github.com/jkelleyrtp/stylo-dioxus The scope of rendering the web is large but tractable - and seemingly not so difficult to be impossible. There's a lot more to the web than HTML and CSS, so we still need to think of how much we want to support long term. |
Beta Was this translation helpful? Give feedback.
-
This isn't exactly true, Freya doesn't use HTML, it's not an HTML/CSS renderer, it has it's own elements.
I haven't noticed any janks like Flutter has, and I think that is because they have some big shaders (something I haven't really used except for some demos in Freya) that are loaded dynamically at runtime and then cached after the first use, but that first load takes a little |
Beta Was this translation helpful? Give feedback.
-
The future of the Blitz renderer
Blitz is Dioxus' native renderer. Now that Servo is maintained, it is worth reconsidering the future of Blitz. Here are some possible options for what Blitz becomes in the future:
Blitz becomes a browser renderer alternative to dioxus-desktop
Blitz was created as a browser renderer to replace a full webview in dioxus-desktop. We could continue to build out Blitz until it becomes a viable replacement.
Pros:
Cons:
Blitz switches to use a browser renderer like chromium or Servo
We could use an existing browser renderer in Blitz like servo's incomplete
stylo
andwebrender
crates or we could fork chromium and create rust bindings.Pros:
Cons:
servo
) or c++ code (chromium
).Beta Was this translation helpful? Give feedback.
All reactions