Commit Graph
367 Commits
Author SHA1 Message Date
Fu WangandJonathan Kelley 128a9d9fad Enhance CLI Build Duration Output with Human-Readable Formatting (#4591)
* Use humantime for build duration formatting in CLI

Replaces manual millisecond formatting with humantime::format_duration for improved readability of build duration logs. Adds humantime as a dependency in Cargo.toml.

* Format build duration with millisecond precision

Changed build duration logging to use millisecond precision instead of default formatting to avoid microsecond/nanosecond noise.

* Refactor duration formatting to use helper function to reduce code duplication.

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2026-01-16 17:57:14 -08:00
Jonathan Kelley ef4d596885 fix playwright flakey test, upgrade to blacksmith runners for more things, cargo update to fix rfd build (#5228)
* attempt fix for flakey playwright test

* fix link

* disable blitz-shell file dialog

* remove rfd integration in native for now

* undo file-dialog pass-thru in anticipation of blitz-shell update

* upgrade to blacksmith

* blitz-shell bump

* use faster runner
2026-01-16 16:52:41 -08:00
Nico Burns 35e289fe28 Fix more examples to work with dioxus-native (#5179)
* Enable native for hotdog, file-explorer, and bluetooth-scanner examples

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix crash in calculator example

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Add config macro for native

* Add Config struct to dioxus-native

* Re-export dioxus-native as dioxus::native

* Fix calculator example to work with dioxus-native

* Fix calculator_mutable example to work with dioxus-native

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2026-01-17 00:32:45 +00:00
Nico BurnsandEvan Almloff 761c9503fd CLI: don't enable default features in --no-default-features builds (#5147)
* Don't push default features in `--no-default-features` builds

Signed-off-by: Nico Burns <nico@nicoburns.com>

* add tests for default features and no default features outside of renderers

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2026-01-14 23:24:18 +00:00
Nico BurnsandEvan Almloff 352e59ea01 Bump rfd to 0.17.2 (#5204)
* Bump rfd to 0.17.1

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Bump MSRV to 1.90

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix clippy

Signed-off-by: Nico Burns <nico@nicoburns.com>

* bump rfd and revert msrv changes

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2026-01-14 22:30:51 +00:00
HenryandJonathan Kelley 9965220947 Scoped css (#5087)
* Create new css module parser

* Use css module processing

* Make hot reloading work for css_module macro

* Change css_module macro shape and rename to styles

* Add css_module example

* Update styles macro documentation

* Remove hidden from styles macro

* Remove unneeded param

* Remove unneeded visibility

* Improve `styles!` macro documentation

* Clippy

* Remove unneeded method

* Clippy

* Clippy

* Replace panic with anyhow

* Update css_module macro to attribute macro

* Update macro docs

* chore: Cargo.lock

* Clippy

* respect semver by deprecating old func

* update to latest winnow

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-12-29 22:41:36 -05:00
Evan AlmloffandJonathan Kelley c977cc125e Switch const serialize to use CBOR (#4932)
* implement const cbor encoding + decoding for basic types

* implement map encoding and decoding

* fix map test

* all tests passing

* dynamically sized arrays

* smaller str encoding

* swap array and list and add more documentation

* move serialization and deserialization for each struct together

* support both legacy and new assets

* bump const serialize version

* fix asset conversion code

* pull out manganis symbol struct from tuble

* test reading old asset versions

* more list/array cleanup and bump rust version

* fix clippy

* switch cli opt port

* install playwright deps

* split cli-optimization package to avoid two dioxus' in the same crate

* fix clippy

* force the toast.png asset to be included in the linker stage #[used] has platform depedant behavior

* bundle both formats in the link section and only use the asset the cli changed

* remove sudo which doesn't exist on windows

* add binstall to the playwright workflow

* separate bin target for the old cli

* lockfile

* cargo update to get versions shaken out

* notes on binstalls, add back `.read()` for compat

* use 0.8.0-alpha.0 for const-serialize instead of 0.8

this ensures we can still publish breaking changes on 0.8 without taking over the full version

* fix clippy in example

* small debug nits

* update rust-overlay in nix

* fix flake?

* migrate to new structure

* just comment out binstalls

* just remove old test harness

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-12-28 21:49:34 -05:00
Nico Burns 31bee1417c Add a prelude module to Dioxus Native (#5104)
* Add prelude to dioxus-native crate

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix unreachable_patterns lint

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-12-25 16:51:51 -05:00
Jonathan Kelley dd2d1b8a19 downgrade cargo generate to fix msrv 2025-12-05 12:11:49 -08:00
Jonathan Kelley 8f8b58ea80 release v0.7.2 2025-12-04 18:26:15 -08:00
Jonathan Kelley 3656cf2ba6 bump tempfile to beat deprecated warning 2025-12-04 17:57:37 -08:00
Evan Almloff 386153672e Add a warning for keys after the first node which do nothing (#4978)
* add a warning for keys after the first node which do nothing

* warnings on stable

* better warnings on nightly
2025-11-30 15:29:50 -05:00
Evan Almloff 84efc00757 Only apply subsystem to final binary, not cdylibs (#5002) 2025-11-21 10:12:49 -08:00
Evan Almloff 75d9ece3af Fix stores deadlock (#4950)
* Fix stores deadlock

* fix clippy

* more clippy fixes

* move panic for reading invalid keys into userland instead of in the
hashmap iter method

* apply the same fixes to btreemap

* return a dropped error instead of panicing if the item has been removed
2025-11-19 12:58:02 -08:00
Alvaro Parker 4fd7fe5511 Update axum-server (#4970) 2025-11-19 12:57:33 -08:00
Jonathan Kelley 03ab7fa482 Release v0.7.1 2025-11-06 16:39:25 -03:00
Jonathan Kelley 1236296ea6 feat: use async fd when using tokio (#4927)
* feat: use async fd when using tokio

* whoops fix ios
2025-11-06 14:55:59 -03:00
Jonathan Kelley 6a50f1ba84 add with_on_window_ready to allow modifying window before webview (#4919)
* wip

* cleanups
2025-11-05 17:00:58 -03:00
Jonathan Kelley 06c5a4499f fix cargo.lock 2025-11-05 15:57:28 -03:00
Nico BurnsandJonathan Kelley d61848609f Make dioxus-native work on iOS simulator (#4876)
* Make dioxus-native work on iOS simulator

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Bump dioxus-native to v0.7.1

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Update package version to use workspace versioning

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-11-05 15:22:02 -03:00
Jonathan Kelley ee25fcb5f6 release 0.7.0 2025-10-30 21:46:11 -07:00
Jonathan Kelley 1b81d89f0b release 0.7.0-rc.4 2025-10-30 19:46:42 -07:00
Evan Almloff 566dab939f Relax asset resolver bounds and document resolving folder assets (#4859)
* relax asset bounds and document resolving folder assets

* fix docs for folder asset_path
2025-10-30 18:53:26 -07:00
Evan Almloff e656bace5c restore the extract function for server functions (#4849)
* restore the extract function for server functions

* fix compilation

* Move most fields under one shared lock

* fix typo

* fix clippy

* restore somewhat misleading FromRequest bound

* remove unused import

* fix doc links
2025-10-27 15:54:24 -07:00
Evan AlmloffandJonathan Kelley 07a0aa852b Pin tauri-macos-sign (#4845)
* pin tauri-macos-sign

* fix nix by pining `home

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-27 12:44:24 -07:00
Nico Burns 2bbfccfd04 Native: implement hot-reloading of stylesheets (#4830)
* Make `tracing` feature of dioxus-native enable `tracing` feature of dioxus-native-dom

* Native: implement hotreloading of stylesheet assets

* Add asset support for native-headless-in-bevy example

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Remove println statements

Signed-off-by: Nico Burns <nico@nicoburns.com>

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-10-24 15:56:55 -07:00
Jonathan Kelley 321032c5c6 Release 0.7.0-rc.3 2025-10-20 18:15:53 -04:00
Evan AlmloffandJonathan Kelley 987e41de16 CLI fixes for hotpatching the playground (#4715)
* add component subcommand

* add dx component add, remove and list commands

* handle rust dependencies

* handle component dependencies

* fetch remote registries

* sort components before listing them

* remove local dependency

* move te component manifest into the dioxus workspace

* add additional instalation instructions the first time the component
module is created

* fix mod name

* fix clippy

* improve docs and move to the main branch of components

* fix typos

* more typos

* undo const-serialize changes

* remove a few unwraps

* Allow adding multiple components at once and add a `--all` flag

* add options to the config for the base path, global asset path and
default registry

* component_path -> component_dir

* component_dir is always relative to the crate root

* fix clippy

* fix hot patching with a base path

* read the hot patch file from stdin instead of a CLI arg to allow for longer inputs

* fix request imports

* wip: code style changes

* rename to "components" instead of "component"

* bump lock

* move to method on request

* read until eof in the case of pretty json

* strip is now copy

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-20 17:50:27 -04:00
Evan AlmloffandJonathan Kelley 79613f9db9 DX components command (#4669)
* add component subcommand

* add dx component add, remove and list commands

* handle rust dependencies

* handle component dependencies

* fetch remote registries

* sort components before listing them

* remove local dependency

* move te component manifest into the dioxus workspace

* add additional instalation instructions the first time the component
module is created

* fix mod name

* fix clippy

* improve docs and move to the main branch of components

* fix typos

* more typos

* undo const-serialize changes

* remove a few unwraps

* Allow adding multiple components at once and add a `--all` flag

* add options to the config for the base path, global asset path and
default registry

* component_path -> component_dir

* component_dir is always relative to the crate root

* fix clippy

* fix request imports

* wip: code style changes

* rename to "components" instead of "component"

* bump lock

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-20 17:20:46 -04:00
Jonathan Kelley 7454fc21ee Release Dioxus 0.7.0-rc.2 2025-10-15 01:28:17 -07:00
Jonathan Kelley 9243ef4128 redirects, middleware, Transport, set/capture error status (#4751)
* wip: redirect

* redirect example

* fix file upload not in a form

* wip

* deny missing cfgs

* wip: add router fallback but it's not working

* fix suspense bug after rebuilds that queued work

* more cleanup

* add test for error codes

* add helpful comment

* bring back middleware annotation

* fix cfg

* add server feature

* fix doctest

* just disable liveview test for now

* fix liveview

* dont send init

* cache more playwright!

* add more pkgs to cache
2025-10-10 21:43:57 -07:00
Nico Burns 0ca8c86cbd native: disable debug logs by default (#4740)
Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-10-10 18:04:49 -07:00
Jonathan Kelley fada28f7b1 Remove duplicated auth example 2025-10-08 19:47:15 -07:00
Jonathan Kelley 05f3b8d20f release: dioxus 0.7.0-rc.1 2025-10-08 00:33:21 -07:00
Jonathan Kelley 92792aded9 More fullstack fixes (#4737)
* allow `--server` only builds!

* rollback example

* capture `/:route` routes

* fix: properly implement file uploads in forms

* implement desktop form uploads

* Performant serialization of form bytes

* finish up file stuff

* cleanups

* add request headers to streaming context

* remove some unwraps
2025-10-07 23:07:43 -07:00
Nico Burns 9359446017 Upgrade to Blitz v0.2.0 (#4731)
* Bump Rust CI version to 1.88

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Upgrade to Blitz v0.2.0

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Native: enable clipboard and file_dialog support by default

* Fix clippy errors

Signed-off-by: Nico Burns <nico@nicoburns.com>

* See if cargo update magically fixes build

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix compile err

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Remove unused wasm-opt dep

* Fix wgpu_child_window example

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Update blitz-shell

Signed-off-by: Nico Burns <nico@nicoburns.com>

* cargo fmt

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Allow clippy lint

Signed-off-by: Nico Burns <nico@nicoburns.com>

* CI: Bump pinned nightly version

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Allow clippy lint in whole module

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix more clippy lints

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Use Rust 1.90 for clippy

Signed-off-by: Nico Burns <nico@nicoburns.com>

* cargo update --ignore-rust-version

* revert cargo updates

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Revert another silly clippy lint

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-10-07 11:18:59 -07:00
Evan Almloff 03801e1312 Fix hydration with empty spread attributes (#4647)
* Fix hydration of empty spread attributes

* add a regression test

* fix doctest
2025-10-03 19:41:23 -07:00
Evan AlmloffandJonathan Kelley 12fab0f9f7 Fix fullstack serialization order for adjacent components (#4600)
* fix serialization order

* add regression test

* split out test into a seperate package

* revert logging

* change order

* opinions on structure

* small wait in hydration order test

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-03 19:23:34 -07:00
Jonathan Kelley f2b1c6d97f codify "platform" into resolution logic, server-fn/fullstack overhaul (#4596)
overhaul dioxus fullstack using a new implementation of server_fn

This PR is a complete rewrite of dioxus fullstack designed to improve compatibility with axum and to fix a number of compilation errors based on feature flag unification plumbing through macros.
2025-10-03 18:26:19 -07:00
Nico Burns ab19ad4624 native: open links in default webbrowser (#4623) 2025-10-03 13:43:47 -07:00
Evan Almloff d65f9a53c4 Fix hydration error suspense (#4640)
* Fix hydration of error boundaries

* add a regression test

* add more comments

* fix typos

* more typos

* fix clippy
2025-10-02 22:21:41 -07:00
Evan Almloff ed285c9604 Pin serde in the CLI (#4663) 2025-09-15 10:49:29 -07:00
Evan Almloff 5104644b34 Allow relative assets in rust > 1.88 (#4658)
* Allow relative assets in rust > 1.88 and assets outside of the crate in
binary crates

* undo changes to assets outside of the crate

* don't use relative assets in examples
2025-09-15 10:43:30 -07:00
Nico Burns ba64110adc Upgrade Blitz to v0.1.0 (#4619)
* Upgrade Blitz to v0.1.0

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix clicking on anonymous blocks

Signed-off-by: Nico Burns <nico@nicoburns.com>

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-08-29 22:59:47 +01:00
Jonathan Kelley 083e04bb6c feat: add dx print command, drive hotpatching engine directly. (#4602)
* feat: add dx print command

* small tweak to how client_target is handled

* hotpatching engine wired up!

* small cleanups

* lighter diff

* little bit more light cleanups

* remove changes to manganis

* fix wrong dir error

* move session_cache fixing to prebuild step
2025-08-21 20:29:49 -07:00
Jonathan Kelley 0a04a199a4 feat: add subsecond serve (#4588)
* feat: add subsecond serve

* typos...
2025-08-19 20:52:46 -07:00
Jonathan Kelley 74163984be show panics in the toast in wasm (#4582) 2025-08-19 17:13:13 -07:00
Jonathan Kelley a7805b8e2a fix: select best match from --device (#4581)
* feat: add codesigning to ios

* add search for android too

* install toolchains for every target

* install toolchains automatically
2025-08-19 16:23:19 -07:00
Evan Almloff 021565c171 Fix hydration of link element (#4561)
* Fix hydration of link element

* revert some logging changes

* clean up fullstack history provider

* fix router tests

* fix document context type
2025-08-19 12:23:45 -07:00
Nico Burns 593945ecce Bump Blitz to 0.1.0-rc.3 (+dangerous_inner_html + style ns attrs) (#4538)
* Bump Blitz to 0.1.0-rc.3

Signed-off-by: Nico Burns <nico@nicoburns.com>

* native: implement dangerous_inner_html

* native: implement style namespace attributes

* Fix clippy lints

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-08-12 13:28:41 -07:00