I've been waiting for Dioxus to be more stable. It has the most potential for the best rust-based cross-platform syntax. Looking forward to making something with it.
I am very new to Rust and it's ecosystem, but I have a C++/Qt background. While I was looking for something to pick up as my GUI tool in Rust, I was choosing between Dioxis, Tauri and Laptos. And, well, Dioxis looks much better, than Tauri. Still don't see a big difference between Laptos and Dioxis, but I really love your enthusiasm about Dioxis, so I have made my choice. Looks very promising and I hope that one day we will see Dioxis in production everywhere!
React Native app dev here. Only thing i feel is performance. If you could give some benchmark for similar react native app it would help more. But as of now React Native is also using JSI and Static hermes i feel there wont be much of difference in performance. Still yet to see.
I created a web extension using Dioxus 0.5. There's documentation on how to include Rust WASM code in web extensions (by the official Rust folks), there's documentation on how to use Dioxus on the web, but there wasn't any documentation on how to use Dioxus in web extensions as WASM. Though once I figured that out, Dioxus just kinda worked hassle-free.
I'm fairly new to Rust and come from 25+ year career mostly in .NET Beta 1.0 through to Core 8. The company I work for has switched most front end app dev to Vue/Nuxt which is pretty sweet on it's own but this looks dead sexy to me. I was just searching for Rust Open Source projects to contribute to and `Dioxus` was one of the top entries. Since I've been looking for a new UI framework, is open source, AND I'm learning Rust, Dioxus is definitely on my radar. I can't wait to fire up `dx` and get familiar with it. I'd love to contribute to the OS project too and have already starred the report and pulled the source.
I think the development of Dioxus is amazing! I hope it doesn’t come with too much CPU performance cost. Now, Dioxus is ready to compete in the future, and I believe it will make other languages ‘rust’ due to its great features and ease of use.
The problem with rust in the frontend are all of the missing libraries. Charts, Graphs, Styling Libraries, etc. I personally prefer tauris approach here
Do you have to manually handle platform specific UI elements, for example, so an ios app dropdown looks like a native iOS app, and android like android without maintaining two separate codebases? And if not, is that expected in the future? Is the main selling point here that you get to write everything in rust? IMO, there are a lot more important aspects to cross platform development than just using the language of your choice.
Our hot reloading works based on file/line/column positions which are told to the Dioxus runtime. We then parse the Rust file in our CLI to detect hot-reloadable changes and send changes back to the Dioxus runtime with that file/line/column metadata. Theoretically, if you are able to get that metadata from both an external tool and the runtime, you can achieve hot reloading for certain structures such as replacing a specific value (in our case, a section of RSX). - Miles
Very interesting project! I might give it a go these days. One note on the video, in the demo section there is almost constant zoom-in, zoom-out, from the code to the live view, which is a bit distracting and makes the watching experience a bit harder when you are trying to understand the code and the focus moves almost constantly.
That awesome work, You should work on providing Good Tutorials Material and show how small to mid apps can be build with frame work and dioxus could be compared to other cross platforms like flutter, other than that great work guys❤
Sorry for being newbie, how to fix this error when running the command `dx new app`? It says ERROR err=Other(Please check if the Git user / repository exists. Caused by: all authentication attempts failed)
One with a somewhat structured file architecture would be nice. Many tutorials in general only show some functionalities. I know it's preference, but I think it helps in understanding how a language works, especially for newcomers :-)
@@DioxusLabs Sorry if this sounds harsh but I'm genuinely curious, that why is Android/iOS support then so difficult for cross-platform frameworks, even if all one wants to do is "just" use WebView?
@ulrich-tonmoy Tauri is more for packaging an app into a webview while Blitz is, at its core, a renderer for HTML/CSS. Blitz is designed to be heavily modular so you only pull in what you need versus a full webview browser environment. Apps using Blitz also run natively using system APIs instead of calling to browser APIs. - Miles
@@comradepeter87 The primary difficulty for us was tooling. Android & iOS have a variety of configurations and build processes that make it difficult to build a bundler that works on every host and target device. Paired with a young mobile ecosystem, we had to troubleshoot a lot to figure things out. While Dioxus uses a webview, the app still runs natively which adds a bit more complexity. We're still very early with mobile and many common system APIs are not available, but it is a great step forward. - Miles
Dioxus uses a webview to render on mobile while the app itself runs natively. Blitz can be used today, although it is still young. The plan is to one day make Blitz the default for fully-native apps. - Miles
Please consider Accessibility. I'm a legally blind developer and love the simplicity of Dioxus (just started in it, haven't gotten to a11y testing yet). But please, please prioritize a11y. All these new frameworks seem to forget this crucial UX element.
My biggest gripe with Dioxus, which I have no gripes with, is Rust's weird closure syntax, which I hate. But I love this. thank you so much. I am gonna try this out
Looks nicely, but WebView under the hood isn't really promising( It would be nice to have KMP (Kotlin Multiplatform) - like. But overall, very very nice to see modern Rust cross platform framework, code looks compact packed!
Quick question: Is this framework like Flutter where everything is a widget that mimics native components? OR, Like Kotlin multi-platform where native components are called when built for the specific platform?
The base is HTML/CSS with "native enhancement". We custom render the basics ourselves (buttons, lists, etc) but use native widgets where our custom version isn't as great. So, it's closer to Flutter than to KMP. As time goes on we will likely move closer to KMP though.
so many packages like cmake, mingw,gcc etc or any required depencies are to be manually installed. those should be automatic for windows whille installing dioxus-cli itself...
@sharukhrahman7925 Dioxus is more akin to React or Flutter in that it's a certain way of building apps that also happen to be easily cross-platform. Tauri is a way to package a web-based app into a webview for desktop or mobile. While we're similar in some aspects, we have different goals. There is a short comparison on our GitHub if you'd want to check it out: github.com/DioxusLabs/dioxus?tab=readme-ov-file#dioxus-vs-tauri - Miles
auto_awesome Traduzir do: Inglês 1.689 / 5.000 How do I install dioxus-cli? I've been trying for a while but it keeps giving me the error "error: failed to run custom build command for `aws-lc-sys v0.23.1` Caused by: process didn't exit successfully: `C:\Users\User\AppData\Local\Temp\cargo-installD9iob2 elease\build\aws-lc-sys-5818562cb69fd1ad\build-script-main` (exit code: 101) --- stdout cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREFIX cargo:rerun-if-env-changed=AWS_LC_SYS_PREGENERATING_BINDINGS cargo:rerun-if-env-changed=AWS_LC_SYS_EXTERNAL_BINDGEN cargo:rerun-if-env-changed=AWS_LC_SYS_NO_ASM cargo:rerun-if-env-changed=AWS_LC_SYS_CFLAGS cargo:rerun-if-env-changed=AWS_LC_SYS_PREBUILT_NASM cargo:rerun-if-env-changed=AWS_LC_SYS_C_STD cargo:rustc-cfg=x86_64_pc_windows_msvc cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC default_for Target: 'x86_64-pc-windows-msvc' cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC cargo:rerun-if-env-changed=CMAKE --- stderr Missing dependency: cmake thread 'main' panicked at C:\Users\User\.cargo egistry\src\index.crates.io-6f17d22bba15001f\aws-lc-sys-0.23.1\builder/main.rs:372:40: called `Result::unwrap()` on an `Err` value: "Required build dependency is missing. Halting build." note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace warning: build failed, waiting for other jobs to finish... error: failed to compile `dioxus-cli v0.6.0`, intermediate artifacts can be found at `C:\Users\User\AppData\Local\Temp\cargo-installD9iob2`. To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path." in the command "cargo install dioxus"
We suggest using the binstall approach since it download a pre-built version of the cli. github.com/cargo-bins/cargo-binstall `cargo binstall dioxus-cli` Otherwise you need to install nasm/cmake github.com/DioxusLabs/dioxus/issues/2982
I've been waiting for Dioxus to be more stable. It has the most potential for the best rust-based cross-platform syntax. Looking forward to making something with it.
It's an exciting project. I used Tauri, but Dioxus is a game changer. I am currently exploring it. Maybe In future, I will write an article.
Thanks, I'm really motivated to learn rust and build with this. I've been caught up in .NET but felt unmotivated by it. Thanks for creating a spark.
I'm in exactly the same situation. C# is a fine language, but I can't resist the siren call of Rust.
Keeps getting better and better! Thank you for the hard work and commitment. This is the future for multi-platform apps.
I am planning to learn rust and this has given me more motivation to pick up that book and start exploring.
I am very new to Rust and it's ecosystem, but I have a C++/Qt background. While I was looking for something to pick up as my GUI tool in Rust, I was choosing between Dioxis, Tauri and Laptos. And, well, Dioxis looks much better, than Tauri. Still don't see a big difference between Laptos and Dioxis, but I really love your enthusiasm about Dioxis, so I have made my choice.
Looks very promising and I hope that one day we will see Dioxis in production everywhere!
This is so awesome! Thanks for all your hard work!
Holy! this blew me away! Amazing work guys!
It looks amazing, congratulations to the Dioxus team.
React Native app dev here. Only thing i feel is performance. If you could give some benchmark for similar react native app it would help more. But as of now React Native is also using JSI and Static hermes i feel there wont be much of difference in performance. Still yet to see.
I created a web extension using Dioxus 0.5. There's documentation on how to include Rust WASM code in web extensions (by the official Rust folks), there's documentation on how to use Dioxus on the web, but there wasn't any documentation on how to use Dioxus in web extensions as WASM. Though once I figured that out, Dioxus just kinda worked hassle-free.
This is amazing ! I'm looking forward to the next steps. Probably going to start to dev an app with it now :)
I'm fairly new to Rust and come from 25+ year career mostly in .NET Beta 1.0 through to Core 8. The company I work for has switched most front end app dev to Vue/Nuxt which is pretty sweet on it's own but this looks dead sexy to me.
I was just searching for Rust Open Source projects to contribute to and `Dioxus` was one of the top entries. Since I've been looking for a new UI framework, is open source, AND I'm learning Rust, Dioxus is definitely on my radar. I can't wait to fire up `dx` and get familiar with it. I'd love to contribute to the OS project too and have already starred the report and pulled the source.
I think the development of Dioxus is amazing! I hope it doesn’t come with too much CPU performance cost. Now, Dioxus is ready to compete in the future, and I believe it will make other languages ‘rust’ due to its great features and ease of use.
Tauri feels better still but this is a huge leap and just how better architected Dioxus this is definitely something I am watching closely.
You guys are amazing. :) Thank you so much!
Very interesting. This seems more intriguing than slint (the Rust version), so I will research it and probably help if this framework is open to that.
In liked the old versions already, but this sounds awesome!
This is very promising and amazing
The syntax creating html elements reminds me of Elm and Mithrill
The problem with rust in the frontend are all of the missing libraries. Charts, Graphs, Styling Libraries, etc. I personally prefer tauris approach here
This is amazing thank you all
Do you have to manually handle platform specific UI elements, for example, so an ios app dropdown looks like a native iOS app, and android like android without maintaining two separate codebases? And if not, is that expected in the future? Is the main selling point here that you get to write everything in rust? IMO, there are a lot more important aspects to cross platform development than just using the language of your choice.
this sort of magic is only possible due to macro's magic? or any language with some sort of comp-time or meta-programming is capable of this?
Talking about hot reload
Our hot reloading works based on file/line/column positions which are told to the Dioxus runtime. We then parse the Rust file in our CLI to detect hot-reloadable changes and send changes back to the Dioxus runtime with that file/line/column metadata. Theoretically, if you are able to get that metadata from both an external tool and the runtime, you can achieve hot reloading for certain structures such as replacing a specific value (in our case, a section of RSX). - Miles
This makes me wanna learn rust
Off-topic quick question, what VS Code theme are you using?
Very interesting project! I might give it a go these days. One note on the video, in the demo section there is almost constant zoom-in, zoom-out, from the code to the live view, which is a bit distracting and makes the watching experience a bit harder when you are trying to understand the code and the focus moves almost constantly.
No mention os the binary size or number of files produced?
Now this is interesting...
Awesome stuff guys. You got a sub.
Awesome, I am eager to involved in Dioxus Labs - for FREE, just be part of future!❤
That awesome work, You should work on providing Good Tutorials Material and show how small to mid apps can be build with frame work and dioxus could be compared to other cross platforms like flutter, other than that great work guys❤
Sorry for being newbie, how to fix this error when running the command `dx new app`?
It says ERROR err=Other(Please check if the Git user / repository exists.
Caused by: all authentication attempts failed)
So I want to know, idk if it's mentioned in the docs. Is this pretty much just WebView? How performant is it compared to Flutter's Skia.
I have the same doubt
do some small/simple app tutorials!😬
We have plans to do so soon! Anything in particular you'd want to see? - Miles
@@DioxusLabstry to touch every Android systems. Like GPS, file picker and so on
@@DioxusLabs do some classic budgeting app! or anything that you think demonstrates all awesome the features of Dioxus. Thank you as always!
One with a somewhat structured file architecture would be nice. Many tutorials in general only show some functionalities. I know it's preference, but I think it helps in understanding how a language works, especially for newcomers :-)
Is Dioxus using a WebView for phones?
By default, yes, though we have been making quick progress on our native renderer, Blitz. - Miles
@@DioxusLabs then isnt it kind of like Tauri but instead of vite frontend here its rust base html kind of thing
@@DioxusLabs Sorry if this sounds harsh but I'm genuinely curious, that why is Android/iOS support then so difficult for cross-platform frameworks, even if all one wants to do is "just" use WebView?
@ulrich-tonmoy Tauri is more for packaging an app into a webview while Blitz is, at its core, a renderer for HTML/CSS. Blitz is designed to be heavily modular so you only pull in what you need versus a full webview browser environment. Apps using Blitz also run natively using system APIs instead of calling to browser APIs. - Miles
@@comradepeter87 The primary difficulty for us was tooling. Android & iOS have a variety of configurations and build processes that make it difficult to build a bundler that works on every host and target device. Paired with a young mobile ecosystem, we had to troubleshoot a lot to figure things out. While Dioxus uses a webview, the app still runs natively which adds a bit more complexity. We're still very early with mobile and many common system APIs are not available, but it is a great step forward. - Miles
Amazing!!!. Keep Going man!
👍🤌
I like it where can I learn about how much more powerful Dioxus is compare to React/Next.js. I'd like to find out more...
with tauri and dioxus, it looks like the time has come for both flutter and react native, but there is a loooooooong time before that happens
This is amazing🎉
So interesting. I will look at this
I have a web app that I am currently planning. Is the web part ready for production?
Is Dioxus use webkit render for mobile and desktop or GPU render. Any plans to implement the GPU render like blitz?
Dioxus uses a webview to render on mobile while the app itself runs natively. Blitz can be used today, although it is still young. The plan is to one day make Blitz the default for fully-native apps. - Miles
Amazing !!
Looks great!
Good stuff congrats!
Please consider Accessibility. I'm a legally blind developer and love the simplicity of Dioxus (just started in it, haven't gotten to a11y testing yet). But please, please prioritize a11y. All these new frameworks seem to forget this crucial UX element.
This is amazing
Awesome!
My biggest gripe with Dioxus, which I have no gripes with, is Rust's weird closure syntax, which I hate. But I love this. thank you so much. I am gonna try this out
Looks nicely, but WebView under the hood isn't really promising(
It would be nice to have KMP (Kotlin Multiplatform) - like.
But overall, very very nice to see modern Rust cross platform framework, code looks compact packed!
Quick question: Is this framework like Flutter where everything is a widget that mimics native components?
OR,
Like Kotlin multi-platform where native components are called when built for the specific platform?
The base is HTML/CSS with "native enhancement". We custom render the basics ourselves (buttons, lists, etc) but use native widgets where our custom version isn't as great. So, it's closer to Flutter than to KMP. As time goes on we will likely move closer to KMP though.
So basically it's on mobile just WebView right?
so many packages like cmake, mingw,gcc etc or any required depencies are to be manually installed. those should be automatic for windows whille installing dioxus-cli itself...
based
looks great!!!
Sorry, whats the selling point of dioxus over tauri?
No JavaScript/HTML
@@nel_tu_ looks like it still uses html markup tho. Maybe somekind of jsx?
@@cina-tech rsx, yeah. but it is all type checked at compile and also much neater imho
@sharukhrahman7925 Dioxus is more akin to React or Flutter in that it's a certain way of building apps that also happen to be easily cross-platform. Tauri is a way to package a web-based app into a webview for desktop or mobile. While we're similar in some aspects, we have different goals. There is a short comparison on our GitHub if you'd want to check it out: github.com/DioxusLabs/dioxus?tab=readme-ov-file#dioxus-vs-tauri - Miles
Menyala abangkuh...
Good work!
Rsx looks much better than Jsx. Finally something that can replace pug.
what's the text editor colorscheme?
It's a remix of the great monokai-vibrant theme. We just published it here marketplace.visualstudio.com/items?itemName=DioxusLabs.monokai-vibrant-rust
Amazing!
nice!! great job!
bigger font for mobile viewer please
What is this code editor colorscheme?
I really want to try it!
same question
It's a remix of the great monokai-vibrant theme. We just published it here marketplace.visualstudio.com/items?itemName=DioxusLabs.monokai-vibrant-rust
i think i should adopt rust
Thats really cool :D
good!
cool
Nice we are looking on to more Flutter tutorials
rust is rising
Mid 2024 yew was easier. I think dioxus might have edged it now.
keren
whatttts!!!
tauri killer
Screen Studio for such long form content is sooo dizzying. Just stop zooming in and out for every little thing.
The continuous zoom-in and zoom-out is very distracting, and it's hard to focus on the content.
Other than that, congrats on the release!
is it me or dioxus-cli is slower on hot reload compared to leptos...
Seriously? Deoxys?
auto_awesome
Traduzir do: Inglês
1.689 / 5.000
How do I install dioxus-cli? I've been trying for a while but it keeps giving me the error "error: failed to run custom build command for `aws-lc-sys v0.23.1`
Caused by:
process didn't exit successfully: `C:\Users\User\AppData\Local\Temp\cargo-installD9iob2
elease\build\aws-lc-sys-5818562cb69fd1ad\build-script-main` (exit code: 101)
--- stdout
cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREFIX
cargo:rerun-if-env-changed=AWS_LC_SYS_PREGENERATING_BINDINGS
cargo:rerun-if-env-changed=AWS_LC_SYS_EXTERNAL_BINDGEN
cargo:rerun-if-env-changed=AWS_LC_SYS_NO_ASM
cargo:rerun-if-env-changed=AWS_LC_SYS_CFLAGS
cargo:rerun-if-env-changed=AWS_LC_SYS_PREBUILT_NASM
cargo:rerun-if-env-changed=AWS_LC_SYS_C_STD
cargo:rustc-cfg=x86_64_pc_windows_msvc
cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
default_for Target: 'x86_64-pc-windows-msvc'
cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
cargo:rerun-if-env-changed=CMAKE
--- stderr
Missing dependency: cmake
thread 'main' panicked at C:\Users\User\.cargo
egistry\src\index.crates.io-6f17d22bba15001f\aws-lc-sys-0.23.1\builder/main.rs:372:40:
called `Result::unwrap()` on an `Err` value: "Required build dependency is missing. Halting build."
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `dioxus-cli v0.6.0`, intermediate artifacts can be found at `C:\Users\User\AppData\Local\Temp\cargo-installD9iob2`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path." in the command "cargo install dioxus"
We suggest using the binstall approach since it download a pre-built version of the cli.
github.com/cargo-bins/cargo-binstall
`cargo binstall dioxus-cli`
Otherwise you need to install nasm/cmake github.com/DioxusLabs/dioxus/issues/2982