This commit adds a new type - the DomEdit - for serializing the changes made by the diffing machine. The architecture of how DomEdits fit into the cooperative scheduling is still TBD but it will allow us to build change lists without applying them immediately. This is more performant and allows us to only render parts of the page at a time. This commit also adds more infrastructure around webview. Dioxus can now run on the web, generate static pages, run in the desktop, and run on mobile, with a large part of thanks to webview.
📦✨ dioxus-cli
Tooling to supercharge dioxus projects
About
dioxus-cli (inspired by wasm-pack and webpack) is a tool to help get dioxus projects off the ground. It handles all the build, development, bundling, and publishing to make web development just a simple two commands: cargo init and dioxus-cli publish.
Best thing:
- No NPM.
- No Webpack.
- No
node_modules. - No Babel
- No parcel
- No rollup
- No ESLint
Just install Rust, dioxus-cli, and you're good to go.
cargo install --git github.com/jkelleyrtp/dioxus-cli
Need a development server?
dioxus develop
Need to run an example?
dioxus develop --example textbox
Need to benchmark a component?
dioxus bench
Need to test your code?
dioxus test
Need to build your code into a bundle?
dioxus build --outdir public
Need to publish your code to GitHub pages, Netlify, etc?
dioxus publish --ghpages myrepo.git
Use in your project
Sometimes you'll want to include static assets without bundling them into your .wasm content. dioxus-cli provides a few ways of doing this:
- Load in dynamic content using
dioxus::asset("./static/images/blah.svg") - Live-reload HTML templates without rebuilding your .wasm with
dioxus::template("./templates/blah.html") - Use a CSS library like tailwind in your dioxus configuration with