Dioxus 0.6
Dioxus is a framework for building fullstack web, desktop, and mobile apps with a single codebase. Our goal is to build a "Flutter but better." Dioxus focuses on first-class fullstack web support, type-safe server/client communication, and blazing fast performance.
With this release, we focused on making Dioxus easier to use, improving the developer experience, and fixing bugs.
Headlining the release is a complete overhaul of the Dioxus CLI:
- dx serve for mobile: Serve your app on Android and iOS simulators and devices.
- Magical Hot-Reloading: Hot-Reloading of formatted strings, properties, and nested rsx!{}.
- Interactive CLI: Rewrite of the Dioxus CLI with a new, interactive UX inspired by Astro.
- Inline Stack Traces: Capture WASM panics and logs directly into your terminal.
- Server Functions for Native: Inline Server RPC for Desktop and Mobile apps.
We also improved the developer experience across the entire framework, fixing long standing bugs and improving tooling:
- Toasts and Loading Screens: New toasts and loading screens for web apps in development.
- Improved Autocomplete: Massively improved autocomplete of RSX.
- asset! Stabilization: Stabilizing our linker-based asset system integrated for native apps.
- Streaming HTML: Stream Suspense and Error Boundaries from the server to the client.
- SSG and ISG: Support for Static Site Generation and Incremental Static Regeneration.
- Error Handling with ?: Use ? to handle errors in event handlers, tasks, and components.
- Meta Elements: New Head, Title, Meta, and Link elements for setting document attributes.
- Synchronous prevent_default: Handle events synchronously across all platforms.
- onresize Event Handler: Track an element's size without an IntersectionObserver.
- onvisible Event Handler: Track an element's visibility without an IntersectionObserver.
- WGPU Integration: Render Dioxus as an overlay on top of WGPU surfaces and child windows.
- dx bundle for Web, iOS, and Android: Complete dx bundle support for every platform.
- json mode: Emit CLI messages as JSON for use by 3rd party tools and CI/CD pipelines.
- New Templates: Three new starter templates for cross-platform apps.
- Nightly Tutorial and Guides: New tutorials and guides for Dioxus 0.6 and beyond.
- Binary Patching Prototype: Prototype of our new pure Rust hot-reloading engine.
Interactive Command Line Tools
Dioxus 0.6 is shipping with a completely overhauled CLI experience! Weβve completely rewritten the CLI to support a ton of new features and improve stability:
The new CLI sports live progress bars, animations, an interactive filter system, the ability to change log levels on the fly, and more.
cli-new-a4f046c37f262d83.mp4
The CLI rewrite alone took more than half this release cycle. We went through several different design iterations and solved tons of bugs along the way. A few of the highlights:
- You can manually rebuild your app by pressing
r
- You can toggle the log level of the CLI output on the fly and even inspect Cargo internal logs
- We output all internal logs of the CLI so you can debug any issues
- We capture logs for WASM tracing and panics
- We dropped the outdir concept and instead use target/dx for all output.
Inline support for iOS and Android emulators.
Android and iOS support for dx serve
With Dioxus 0.6, the dioxus CLI supports dx serve --platform ios/android out of the box! π
While Dioxus has always had mobile, the Rust tooling for mobile has been extremely unstable. Users constantly ran into issues with tools like cargo-mobile and cargo-mobile2. These tools, while useful, take a different architectural approach than what is a good fit for Dioxus.
With this release, we wrote our entire mobile tooling system from scratch. Now, you can go from dx new to dx serve --platform ios in a matter of seconds.
The Android and iOS simulator targets support all the same features as desktop: hot-reloading, fast rebuilds, asset bundling, logging, etc. Dioxus is also the only Rust framework that supports main.rs for mobile - no other tools have supported the same main.rs for every platform until now.
Our inline mobile support requires no extra configurations, no manual setup for Gradle, Java, Cocoapods, and no other 3rd party tooling. If you already have the Android NDK or iOS Simulator installed, you currently are less than 30 seconds away from a production-ready mobile app written entirely in Rust.
dxnew-6ae881e7cb312845.mp4
Completely Revamped Hot-Reloading
We shipped massive improvements to the hot-reloading engine powering Dioxus. Our internal goal was to iterate on the Dioxus Docsite with zero full rebuilds.
This means we needed to add support for a number of new hot-reloading engine changes:
Hot-reload formatted strings
Hot-reload nested rsx blocks
Hot-reload component properties and simple Rust expressions
Hot-reload mobile platforms and their bundled assets
The new hot-reloading engine almost feels like magic - you can quickly iterate on new designs - and even modify simple Rust code! - without waiting for full rebuilds:
dogapphr2-e0c61cc8f7dab6f1.mp4
Completely Revamped Autocomplete
Another huge overhaul in Dioxus 0.6: greatly improved autocomplete of rsx! {}. Our old implementation of rsx! {} suffered from poor integration with tools like Rust-analyzer which provide language-server integration for your code. If the input to the macro wasnβt perfectly parsable, we failed to generate any tokens at all, meaning rust-analyzer couldnβt jump in to provide completions.
The work to fix this was immense. Macro parsing libraries like syn donβt provide great facilities for βpartial parsingβ Rust code which is necessary for implementing better errors and autocomplete. We had to rewrite the entire internals of rsx! {} to support partial parsing of rsx! {} , but finally, in 0.6, weβre able to provide stellar autocomplete. Not only can we autocomplete Rust code in attribute positions, but with a few tricks, weβre able to automatically insert the appropriate braces next to element names:
Inline WASM stacktraces and tracing integration
Along with the rewrite of the CLI, we shipped a tracing integration for WASM apps that captures panics and logs and sends them dx in your terminal. When you build your app with debug symbols, stack traces directly integrate with your editor, allowing you to jump directly to the troublesome files from within your terminal.
Toasts and Loading Screens
As part of our CLI overhaul, we wanted to provide better feedback for developers when building web apps. Dioxus 0.6 will now show Popup Toasts and Loading Screens for web apps in development mode.
Now, when your app is building, Dioxus will render a loading screen with the current progress of the build:
Fullstack Desktop and Mobile
Additionally, we properly integrated server functions with native apps. Server functions finally work out-of-the-box when targeting desktop and mobile:
native-serverfn12-c825c80078382054.mp4
Stabilizing Manganis asset!() system
We introduced our new asset system, Manganis, in an alpha state with the 0.5 release. Dioxus 0.6 stabilizes the asset system and fixes several bugs and performance issues. You can try out the new linker based asset system by including an asset! anywhere in your code. It will automatically be optimized and bundled across all platforms:
rsx! {
img { src: asset!("/assets/image.png") }
}
More
Read the entire release post for a full overview: https://dioxuslabs.com/blog/release-060
What's Changed
- Add access to the Element attributes related to scrolling by @ASR-ASU in #2338
- Create a Static Site Generation platform; Deduplicate hot reloading code by @ealmloff in #2226
- Autocomplete rsx by @ealmloff in #2421
- Improved fullstack reload_upon_connect timeout by @luveti in #2436
- The value returned by get_scroll_size method is invalid by @ASR-ASU in #2445
- Fix chinese README image url by @panglars in #2449
- Bump korthout/backport-action from 2 to 3 by @dependabot in #2455
- Make use of
#[doc]
field attributes inProps
derive macro by @MrGVSV in #2456 - Set up example scraping for docs.rs by @ealmloff in #2450
- fix: Avoid cloning a provided context unnecessarily by @marc2332 in #2458
- Replace
RwLock::try_read
withRwLock::read
inSyncStorage
by @ribelo in #2463 - Switch from an absolute ::dioxus to the relative dioxus_core by @pyrrho in #2465
- Remove unused dependency from core-macro by @airblast-dev in #2466
- Remove value attribute instead of resetting it by @ealmloff in #2480
- Fix memo and resource line info by @ealmloff in #2443
- Fix routers without an index route by @ealmloff in #2477
- Fix event bubbling inside templates after a hot template reload by @ealmloff in #2484
- Update openid example by @samtay in #2474
- Improve inline docs by @ealmloff in #2460
- Change ToRouteSegments to borrow self by @ealmloff in #2283
- Fix recursive copy while bundling by @ealmloff in #2419
- Detect components called as functions by @ealmloff in #2461
- switch from slab to slotmap for tasks to fix the ABA problem by @ealmloff in #2488
- Feat: Progress Bar vs Println Mechanism by @DogeDark in #2489
- fix: Add missing name attribute for by @ilaborie in #2494
- Add Popover API by @nayo0513 in #2498
- Create closure type; allow async event handlers in props; allow short hand event handlers by @ealmloff in #2437
- Ignore
#[props(into)]
on Strings by @ealmloff in #2501 - Improve server eval error message by @ealmloff in #2502
- Integrate wasm-opt into the CLI by @ealmloff in #2434
- add file size to FileEngine by @rogusdev in #2323
- Bump braces from 3.0.2 to 3.0.3 in /packages/extension by @dependabot in #2503
- Fix hydration of empty text nodes by @ealmloff in #2505
- Add CI step to test packages with debug assertions off by @ealmloff in #2507
- Improve bug_report by @WilliamRagstad in #2532
- Update
dioxus_desktop::Config
to also allow for asynchronous custom protocol handlers by @d3rpp in #2535 - Assert that launch never returns for better compiler errors by @ealmloff in #2517
- Fix raw attribute names by @ealmloff in #2520
- Document props and component macro by @ealmloff in #2522
- Simplify dioxus-config-macro by @ealmloff in #2514
- Remove implicit optional dependency features by @ealmloff in #2512
- Convert closures into Option automatcially by @ealmloff in #2538
- nonreactive examples for hooks were not compilable as written by @rogusdev in #2337
- Make it easier to provide context to fullstack by @ealmloff in #2515
- Deduplicate reactive scope updates/Reset subscriptions on reruns/fix use memo double update by @ealmloff in #2506
- add aria-current to link by @uzytkownik in #2540
- Revision: Change Default Fullstack IP by @DogeDark in #2543
- Add missing packages in flake.nix by @uzytkownik in #2547
- Fix hot-reloading on Windows by @matthunz in #2544
- Update the examples link on the README by @hardBSDk in #2552
- Chore: move todo!() to unimplemented!() by @jkelleyrtp in #2558
- Add Section To CLI
README.md
Aboutcli-dev
Profile by @DogeDark in #2560 - Forward cli serve settings and make it easier to provide platform config to fullstack by @ealmloff in #2521
- Suspense boundaries/out of order streaming/anyhow like error handling by @ealmloff in #2365
- edit settings.json to disable format on save for the repo by @jkelleyrtp in #2572
- Switch to using refs instead of owned for autofmt write block out by @jkelleyrtp in #2573
- Switch to comments as placeholder nodes by @ealmloff in #2579
- Return error when unable to parse request uri by @ealmloff in #2578
- cut out a number of changes from the hr PR by @jkelleyrtp in #2580
- Use Manganis Linker System by @DogeDark in #2561
- Feat: CLI Settings by @DogeDark in #2424
- Partially Fix Hotreload by @DogeDark in #2557
- Remove deprecated macros: inline_props, format_args_f!, render! by @jkelleyrtp in #2574
- Fix fullstack desktop launch by @luveti in #2581
- Expand component definition before errors to fix component autocomplete from other modules by @ealmloff in #2609
- fix (desktop): hide window until the first render by @imgurbot12 in #2614
- fix (desktop): hide menu when window decorations are disabled by @imgurbot12 in #2613
- Fix context type in static generation crate by @ealmloff in #2607
- Add a playwright test that checks static generation by @ealmloff in #2608
- Fix empty web history prefixes by @ealmloff in #2621
- Bump JamesIves/github-pages-deploy-action from 4.6.1 to 4.6.3 by @dependabot in #2605
- feat (desktop): upgrade from wry 37 to 41 by @imgurbot12 in #2618
- switch to a Document trait and introduce Script/Head/Style/Meta components by @ealmloff in #2635
- Hotreloading of
for/if/body
, formatted strings, literals, component props, nested rsx, light CLI rewrite, cli TUI by @jkelleyrtp in #2258 - Improve warnings when trying to update outside of pending suspense boundaries on the server by @ealmloff in #2575
- Bump gix-path from 0.10.8 to 0.10.9 by @dependabot in #2640
- Handle deserialize errors without panic by @Septimus in #2664
- Bump openssl from 0.10.64 to 0.10.66 by @dependabot in #2673
- Fix deriving props with a where clause and an owner by @ealmloff in #2674
- Fix some CI (windows + nasm, core-macro error) by @jkelleyrtp in #2676
- Splash Screens by @DogeDark in #2657
- Re-Export Manganis & Update Examples by @DogeDark in #2625
- Fix generation race condition with sync storage by @ealmloff in #2638
- Remove Dioxus CLI NASM dependency #2666 by @opensource-inemar-net in #2682
- Make VirtualDom constructor take an
impl Fn()
instead of a function pointer by @oskardotglobal in #2583 - Allow no trailing comma after attributes by @ealmloff in #2651
- Expand to a partial Component if a shorthand attribute starts with a capital letter by @ealmloff in #2652
- Fix cli readme local installation instructions by @ealmloff in #2671
- Disable browser shortcut keys on windows by @ealmloff in #2654
- CLI: Add a signal handler to reset the cursor on interrupt in #2603
- Fix: CLI Drain Logs by @DogeDark in #2686
- Fix: Windows Hot Reload by @DogeDark in #2687
- Web Eval: Use JSON Compatible Serializer by @DogeDark in #2592
- Fix: File Watcher Ignore List by @DogeDark in #2689
- Fix rsx autocomplete and diagnostics in the root; provide better completions after attributes are finished by @ealmloff in #2656
- Parse raw elements, attributes, and web components in rsx by @ealmloff in #2655
- CI: re-reorder free disk space action to clear free up space earlier by @jkelleyrtp in #2690
- Fix spread props diffing by @ealmloff in #2679
- Improve error message when the CLI and dioxus versions don't match by @ealmloff in #2683
- fix most typos, add crate-ci/typos to CI by @LeoDog896 in #2653
- Better
expect
error messages by @matthunz in #2629 - Fix playwright tests by @ealmloff in #2695
- feat(cli): added git commit hash to version output by @Andrew15-5 in #2696
- Unify the warning system by @ealmloff in #2649
- Add a deprecation warning for the resource option in dioxus.toml by @ealmloff in #2642
- Make dioxus-cli a binary - not a library by @ealmloff in #2698
- fix formatting and merging if chains in attributes by @ealmloff in #2697
- Make the web config optional in dioxus.toml by @ealmloff in #2700
- Fix
debug_assertions
incore::tasks
by @matthunz in #2703 - CLI: Toasts & Tweaks by @DogeDark in #2702
- Use head elements and new manganis syntax in examples by @ealmloff in #2688
- Parse redirects in the same order they appear in by @ealmloff in #2650
- Fix #2612: adjust readable trait to allow try_peek by @jkelleyrtp in #2714
- Feat:
always_on_top
CLI Setting by @DogeDark in #2715 - Fix #1188: enable dangerous_inner_html for svgs by @jkelleyrtp in #2717
- TUI tweaks by @matthunz in #2685
- Fix #2378: CLI MSRV and add MSRV to CI by @jkelleyrtp in #2716
- This fixes issue #2723 by @opensource-inemar-net in #2724
- fix issue 1586 by @i123iu in #2725
- desktop app saves window position fix by @i123iu in #2730
- implement HasMouseData for WheelEvent by @i123iu in #2728
- Fix WSL Hot Reload by @DogeDark in #2721
- fix issue 1586 followup by @i123iu in #2733
- Follow-up for error messages in core by @matthunz in #2719
- speed up incremental cli builds by making wasm-opt optional by @jkelleyrtp in #2720
- Fix #2309: rfd doesn't need async-std by @jkelleyrtp in #2712
- Fix: Enable/Disable Hot Reload by @DogeDark in #2737
- Add short
p
option forpackage
to matchcargo
by @matthunz in #2738 - Pass
--package
to Cargo #1547 by @matthunz in #2740 - Switch to a pool of dynamic values for hot reloading by @ealmloff in #2705
- Fix component names when they are re-exported by @ealmloff in #2744
- Fix diffing Option by @ealmloff in #2746
- Don't print the asset path on desktop by @ealmloff in #2748
- Fix list diffing with root dynamic nodes by @ealmloff in #2749
- Fix hot reloading spreads by @ealmloff in #2750
- Workspace support for
dx fmt
by @matthunz in #2745 - Fix: #2604, Fix: #2240, Fix: #2341, Fix #1355 - Better error handling and and spaces handling in autofmt by @jkelleyrtp in #2736
- Fix: #1964: Use the correct to-static impl for sending escaped strings via hotreload by @jkelleyrtp in #2753
- Fix 2265: close tui on success, custom tui subscriber by @jkelleyrtp in #2734
- Refactor
WebEventExt
by @matthunz in #2707 - Fix the base path in the CLI by @ealmloff in #2756
- Feat: Auto Default Into by @DogeDark in #2757
- Pre-release 0.6.0-alpha.0 by @jkelleyrtp in #2755
- release: 0.6.0-alpha.1 (improve docs.rs for fullstack, dioxus) by @jkelleyrtp in #2760
- Support Optional Read Signals by @DogeDark in #2761
- Move manganis image into attribute value implementation into core by @ealmloff in #2765
- Add liveview support to the CLI and make fullstack runnable from dist by @ealmloff in #2759
- fix: use prettier-please just in tests - no custom wrapper by @jkelleyrtp in #2767
- Fix Links & Add Link Checker by @DogeDark in #2769
- Revision: Make
EvalError
implError
by @DogeDark in #2768 - Add a warning when a copy value is used in a higher scope than it was created in by @ealmloff in #2771
- Add argument to
use_callback
by @matthunz in #2774 - Remove Old Changelogs by @DogeDark in #2776
- Bubble errors from the server to the client on suspense boundaries by @ealmloff in #2772
- Bump actions/cache from 3 to 4 by @dependabot in #2785
- Fix fullstack cli progress by @ealmloff in #2787
- Add new crate to workspace members by @matthunz in #2775
- Fix suspense diffing by @ealmloff in #2789
- Re-export the axum feature flag under "server" by @ealmloff in #2786
- Fix autocomplete in rsx by @ealmloff in #2794
- bump dioxus released to alpha-0.2 by @jkelleyrtp in #2800
- Fix github CLI publish CI msrv by @jkelleyrtp in #2802
- Fix mac CLI publish by using mac13 for runner by @jkelleyrtp in #2803
- Simplify and fix some issues with
#[component]
macro by @tigerros in #2289 - Fix Option with non path T types by @ealmloff in #2808
- Fix assets folder workspace by @ealmloff in #2821
- adding the Access-Control-Allow-Origin header to assets by @daixiwen in #2818
- Fix nested rsx expansion by not using template titles by @jkelleyrtp in #2799
- Update: wasm-bindgen by @DogeDark in #2824
- Synchronous prevent default by @ealmloff in #2792
- Fix templates merging in debug mode in macros by @ealmloff in #2828
- Fix mount use after removal/Simplify mounts a bit by @ealmloff in #2834
- Fix non-brace delimeters in nested macro formatting by @jkelleyrtp in #2831
- Fix side-by-side fragments by walking in reverse by @jkelleyrtp in #2841
- Apply any queued hot reload changes when the client connects by @ealmloff in #2843
- Fix hot reloading component properties out of order by @ealmloff in #2842
- Add the
onresize
event handler to Element by @ASR-ASU in #2479 - Add version number to package section of Cargo.toml to fix issue #2833 by @jacklund in #2835
- Don't rebuild when the code is in an invalid intermediate state by @ealmloff in #2848
- fix collapsing of multiline components and rsx!{} calls by @jkelleyrtp in #2849
- Fix: Make Toast Fixed & Increase Z-Index by @DogeDark in #2850
- Move to a generic GlobalLazy by @ealmloff in #2851
- fix autofmt: don't panic when writing blocks out without a srcfile by @jkelleyrtp in #2854
- Fix: CLI Progress by @DogeDark in #2840
- Fix
Error parsing user_event: Error("EOF while parsing a value", line: 1, column: 0)
by @ASR-ASU in #2856 - Fix hot reload custom element by @ealmloff in #2866
- Make desktop fullstack work with the CLI by @ealmloff in #2862
- Make use_callback and Callback bring the runtime with them by @ealmloff in #2852
- Update README.md to highlight both licenses by @jkelleyrtp in #2868
- Fix: clippy, dont throw error on commas by @jkelleyrtp in #2869
- Bump sledgehammer by @ealmloff in #2879
- Bump dependencies to transitively bump git2 from 0.18 to 0.19 by @pyrrho in #2873
- Add placeholder doc comments to macro-generated enums by @pyrrho in #2872
- feat: Manual impl of PartialEq for
Coroutine
by @marc2332 in #2895 - Restore Nix devShell support by @srid in #2890
- Revert "feat: Manual impl of PartialEq for
Coroutine
" by @marc2332 in #2899 - Fix script component src attribute by @ealmloff in #2887
- Finish the running examples section of the readme by @ealmloff in #2889
- Fix hot reloading components with keys by @ealmloff in #2886
- Fix ordering issues when with_menu(None) is called before setting the window builder by @ealmloff in #2903
- Bump webpack from 5.88.1 to 5.94.0 in /packages/extension by @dependabot in #2907
- Add
aspect-ratio
property by @ASR-ASU in #2916 - Use of
async_std::task::sleep
instead oftokio::time::sleep
in examples by @ASR-ASU in #2912 - Bump quinn-proto from 0.11.6 to 0.11.8 by @dependabot in #2922
- Bump gix-path from 0.10.9 to 0.10.10 by @dependabot in #2921
- Fix clock example (
tokio::time::sleep
->async_std::task::sleep
) by @ASR-ASU in #2939 - Bump gix-path from 0.10.10 to 0.10.11 by @dependabot in #2938
- Parse trailing route slash by @ealmloff in #2896
- Allow hooks in the expression of a match statement and if statement by @ealmloff in #2902
- Fix custom launch builder with unsized context types by @ealmloff in #2920
- Bump wry to 0.43 by @ealmloff in #2945
- add
disabled
,form
andname
attributes to fieldset by @chungwong in #2947 - remove unused logic in fullstack launch by @chungwong in #2949
- ci: Add workflow for building
flake.nix
by @srid in #2910 - Bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.4 by @dependabot in #2944
- Remove mention of suspense/streaming in readme comparison by @ealmloff in #2950
- Simplify TodoMVC example by @matthunz in #2935
- Fix dx bundle command and resources panic by @ealmloff in #2951
- CLI Fixes & Tweaks by @DogeDark in #2846
- small style tweak: make spacing cosnsistent for uses of
rsx! {
, switchtodo!()
tounimplemented!()
by @jkelleyrtp in #2956 - Chore: remove old cruft in web crate by @jkelleyrtp in #2957
- Skip running Nix CI for draft PRs by @matthunz in #2961
- Chore: hoist example projects for discoverability by @jkelleyrtp in #2959
- Extract some simple cleanups from 2779 by @jkelleyrtp in #2966
- Split out isrg from ssr and reorient build graph to make interpreter build 2x faster by @jkelleyrtp in #2969
- Chore: format some cargo tomls by @jkelleyrtp in #2970
- Improve compile times by splitting out rsx-hotreload from rsx by @jkelleyrtp in #2971
- Simplify cli-config, hotreload -> devtools (drop to 0 deps, fast compile times) by @jkelleyrtp in #2975
- chore: add the missing in comment by @jingchanglu in #2978
- docs: Modify Examples 'website by @houseme in #2996
- feat(web): using
None
instead ofElement
by @ilaborie in #3012 - File explorer example was moved from
examples
toexample-projects
. Update related files. by @sknauff in #3009 - Extend head components with global attributes by @ealmloff in #2888
- Use callback in desktop asset handler by @ealmloff in #3000
- Use the absolute path for result in the router macro by @ealmloff in #3017
- Fix memo dirty flag after unrelated writes by @ealmloff in #2992
- improve
use_drop
documentation by @chungwong in #3023 - docs: add korean translation for README.md by @azamara in #2998
- Fix restarting coroutines by @ealmloff in #3005
- Escape HTML entities in rsx rosetta by @ealmloff in #3038
- Fix partially formatted if chains in attributes by @ealmloff in #2999
- Fix special characters in head elements by @ealmloff in #3031
- Remove dependency on atty by @tpoliaw in #3047
- Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.8 by @dependabot in #3018
- Remove native and web features from dioxus-html by @ealmloff in #3006
- Improve documentation for the fullstack crate by @ealmloff in #2952
- Simplify the launch builder by @ealmloff in #2967
- Fix cloned rsx double drop by @ealmloff in #2839
- Update bug report format by @matthunz in #2955
- Bump lycheeverse/lychee-action from 1 to 2 by @dependabot in #3056
- Move the document trait into a separate crate by @ealmloff in #3035
- Fix: Windows File Drag-N-Drop by @DogeDark in #3046
- Bump manganis prerelease to alpha.2 by @jkelleyrtp in #3058
- bump manganis to alpha.3 by @jkelleyrtp in #3059
- fix fullstack build bug when --release by @hackartists in #3078
- fix fullstack doc by @chungwong in #3071
- Fix inserting attributes after expanding dynamic nodes by @ealmloff in #3094
- Fix bundling/path errors, sidecar support, iOS/Android simulator support, asset hotreload fixes, serverfn hotrelad, native tailwind support by @jkelleyrtp in #2779
- Fix: TUI YT Link by @DogeDark in #3102
- Fix: Windows Hot Reload by @DogeDark in #3103
- Capture current scope ID in
use_muda_event_handler
by @matthunz in #3120 - Fix: CLI Release & Profile Conflict by @DogeDark in #3115
- fix: π removed the line that exposes file structure of web server by @Tahinli in #3118
- Remove:
default_platform
inDioxus.toml
by @DogeDark in #3108 - Better caching in CI by @jkelleyrtp in #3127
- Fix: CLI Not Applying
no-default-features
When Specifying Platform by @DogeDark in #3130 - feat: add stylesheet component to dioxus document by @jkelleyrtp in #3138
- fix: don't panic while reading file in hotreload by @jkelleyrtp in #3142
- Fix liveview launch by @ealmloff in #3145
- use DragEvent not MouseEvent for drag events by @rogusdev in #3137
- Move the history provider into the context by @ealmloff in #3048
- SystemTray by @Klemen2 in #3123
- Fix if chain attributes with mixed expressions and strings by @ealmloff in #3149
- Add a warning about using use_hook(RefCell) in the docs by @ealmloff in #3151
- Fix the current route in ssr fullstack rendering by @ealmloff in #3153
- Fix isg streaming by @ealmloff in #3156
- feat: enable ssg using
/api/static_routes
by @jkelleyrtp in #3157 - Typo in README.md by @alilosoft in #3158
- wip: faster playwright test with better caching by @jkelleyrtp in #3160
- Make wasm-bindgen parallel/disable log, speed up 2-10x by @jkelleyrtp in #3161
- Remove debug printlns by @Rahul721999 in #3179
- complete implementation of IntoAttributeValue for number types by @chungwong in #3169
- Fix providing context to server functions by @ealmloff in #3174
- Fix as web event by @ealmloff in #3178
- Fix subscriptions for read only signals passed as props by @ealmloff in #3173
- Bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.6.9 by @dependabot in #3193
- Replace "and soon, mobile" to "and mobile" to reflect the tauri v2 la⦠by @ahqsoftwares in #3199
- Fix: CLI Fullstack Executable File Extension by @DogeDark in #3198
- cli json output, dx bundle fix,
dx serve --platform android
, race condition, drop ssg platform by @jkelleyrtp in #3186 - fix: autodetect android install by @jkelleyrtp in #3200
- Don't run effects from dead recycled scopes by @ealmloff in #3201
- Fix write on render warning with read only signal props by @ealmloff in #3194
- Enable External Links Without Modifier by @LeWimbes in #2983
- Add support for user-provided event loops & event handlers by @Aandreba in #3180
- feat: allow android apps with any name, fix android + windows for aarch64 target by @jkelleyrtp in #3213
- Deprecate relative asset paths, better warnings for asset!() by @jkelleyrtp in #3214
- fixes: light qol fixes for ssg and logging on
dx run
by @jkelleyrtp in #3216 - Feat: Android Dynamic Arch Support by @DogeDark in #3215
- feat: add keep-symbols flag, change ssg format to Vec by @jkelleyrtp in #3217
- Fix: Asset Warnings On Windows by @DogeDark in #3220
- fix: java_home and cli swallowing logs by @jkelleyrtp in #3221
- Fix (and rewrite)
dx init
/dx new
by @Andrew15-5 in #2822 - feat: enable versioned templates by @jkelleyrtp in #3223
- fix the downcast for formdata try_as_web_event by @rogusdev in #3227
- feat: traverse the target directory instead of intercepting the linker to collect assets by @jkelleyrtp in #3228
- properly expose all symbls in manganis without linker intercept by @jkelleyrtp in #3230
- fix android serverfns by @jkelleyrtp in #3231
- Restore manganis optimizations by @ealmloff in #3195
- Fix: CLI Windows Write
exe
Errors by @DogeDark in #3239 - Fix hydration race condition by @ryo33 in #3240
- wgpu windows (fixed) by @jkelleyrtp in #3257
- Fix base path on web and fullstack by @ealmloff in #3247
- chore(web): bump web-sys & js-sys to 0.3.70 by @ilaborie in #3256
- Fix hot reloading identical event handler closures by @ealmloff in #3270
- Fix: Legacy Folder Assets With
.
In Name by @DogeDark in #3264 - Fix diffing cloned rsx nodes by deep cloning nodes before mounting them by @ealmloff in #3271
- Fix fullstack axum integration docs by @ealmloff in #3263
- document Write, GenerationalRef, and GenerationalRefMut by @ealmloff in #3253
- drop reference types due to deprecation, pin browserlist (fix ci) by @jkelleyrtp in #3272
- Add the
onvisible
event handler toElement
by @ASR-ASU in #2911 - improve build times by extracting asset opt into its own crate by @jkelleyrtp in #3273
- Feat: Re-Export
cargo_metadata
Indioxus-dx-wire-format
by @DogeDark in #3281 - Expose streaming options to choose between full prerendering and out of order streaming by @ealmloff in #3288
- simplify leptos comparison by @jkelleyrtp in #3292
- fix: line clipping and overlapping by @jkelleyrtp in #3291
- Feat: Manganis SCSS Support by @DogeDark in #3294
- Fix: Flush Cargo Logs on Build Failure by @DogeDark in #3282
- fix: never cache spanless expressions in autofmt by @jkelleyrtp in #3297
- feat: some simple UI tweaks to CLI by @jkelleyrtp in #3301
- feat: integrate dioxus-logger inline by @jkelleyrtp in #3302
- Update all docs links to 0.6, release 0.6 by @jkelleyrtp in #3225
New Contributors
- @ASR-ASU made their first contribution in #2338
- @luveti made their first contribution in #2436
- @panglars made their first contribution in #2449
- @MrGVSV made their first contribution in #2456
- @ribelo made their first contribution in #2463
- @airblast-dev made their first contribution in #2466
- @ilaborie made their first contribution in #2494
- @nayo0513 made their first contribution in #2498
- @WilliamRagstad made their first contribution in #2532
- @d3rpp made their first contribution in #2535
- @uzytkownik made their first contribution in #2540
- @hardBSDk made their first contribution in #2552
- @imgurbot12 made their first contribution in #2614
- @Septimus made their first contribution in #2664
- @opensource-inemar-net made their first contribution in #2682
- @oskardotglobal made their first contribution in #2583
- @LeoDog896 made their first contribution in #2653
- @i123iu made their first contribution in #2725
- @daixiwen made their first contribution in #2818
- @jacklund made their first contribution in #2835
- @jingchanglu made their first contribution in #2978
- @houseme made their first contribution in #2996
- @sknauff made their first contribution in #3009
- @azamara made their first contribution in #2998
- @tpoliaw made their first contribution in #3047
- @hackartists made their first contribution in #3078
- @Klemen2 made their first contribution in #3123
- @alilosoft made their first contribution in #3158
- @Rahul721999 made their first contribution in #3179
- @ahqsoftwares made their first contribution in #3199
- @LeWimbes made their first contribution in #2983
- @Aandreba made their first contribution in #3180
- @ryo33 made their first contribution in #3240
Full Changelog: v0.5.7...v0.6.0