Commit Graph
664 Commits
Author SHA1 Message Date
Jonathan Kelley 6b78816c1d allow passive wasm segments for manganis (#5163)
* fix passive segment using tls calculation!

* clean things up

* clean diff

* revert some pr changes for review

* cleanups
2026-01-07 02:35:08 -08:00
Agustín Covarrubias 2ee8ecd477 fix(cli): pass --all-features flag to cargo (#5153) 2025-12-29 09:33:03 -05:00
Jonathan Kelley 02b62342ef allow codesigning any server backend on macos (#5085)
* allow codesigning any server backend on macos

* clippy
2025-12-28 22:37:46 -05:00
Bayley Foster 887a87dcc1 fix(cli): display bundle format instead of undefined in dev loading screen (#5123) 2025-12-28 21:51:39 -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 c68a47b2d3 CLI: only push a dioxus/* fallback feature if the crate being compiled (#5143)
depends on the `dioxus` crate.
2025-12-28 12:24:03 -05:00
qouteallandEvan Almloff da72b63b6f Fix the wrong removal of first linker arg in Windows. Linker argument file no longer include first program name argument. Small refactor of handling of linker response file. (#5010)
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2025-12-15 10:14:22 -06:00
Nico Burns 552b553a44 Fix call to rustc-objcopy to strip binary on Linux (#5066)
* Fix call to rustc-objcopy to strip binary on Linux

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

* Print stdout and stderr if strip fails

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

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-12-11 02:36:56 +00:00
Nico Burns c01770fcfb Fix resolving windows icon path (#5072)
Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-12-08 14:37:55 +00:00
Jonathan Kelley dd2d1b8a19 downgrade cargo generate to fix msrv 2025-12-05 12:11:49 -08:00
Jonathan Kelley da04e1e8df rollback tempfile, drop rustvers requirement 2025-12-05 11:22:50 -08:00
Jonathan Kelley ebeaa2c273 fix: bump cli rustvers 2025-12-04 18:30:10 -08:00
Jonathan Kelley af8d6aed2f dont bother warning about unmatched ifuncs
we added some logs around unmatched ifuncs, but we actually didn't need them.
this is because ifuncs can be *new* even if there isn't and old corresponding ifunc.
2025-12-04 18:07:32 -08:00
Jonathan Kelley 3656cf2ba6 bump tempfile to beat deprecated warning 2025-12-04 17:57:37 -08:00
Soheil AlizadehandJonathan Kelley 3fef7a9962 Enable musl target builds with vendored libgit2 (#4991)
* enable musl target builds with vendored libgit2

* move git2 to bottom of list

* also fix dioxus fullstack docs builds

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-12-04 17:04:27 -08:00
Jonathan Kelley 1e48093e22 codesign macos apps (#5055)
* wip

* rollback readme

* change language
2025-12-04 15:15:23 -08:00
Charles ChristoliniandEvan Almloff 3bcb76b21c Resolves #5045: Trim slashes to prevent base path resolution issues in web (#5049)
* issue-5045 Trim slashes to prevent base path resolution issues in web

* Revert "issue-5045 Trim slashes to prevent base path resolution issues in web"

This reverts commit 480cd48d8537a56f57538c21e7cc98b75e8dc8ad.

* This is a more comprehensive approach. No matter how "/" gets set into
DIOXUS_ASSET_ROOT (cli arg, dioxus toml, or env var) it will be
normalized when used.

* Move the trim fix to the locations we set the variable DIOXUS_ASSET_ROOT as
this environment variable is not meant for public consumption.

* pull out trimming into a method

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2025-12-04 14:19:01 -06:00
Amos Wenger e5a98d094d fix(cli): queue file changes that arrive during builds instead of dropping them (#5007)
Previously, when a file change event arrived while a build was in progress
(i.e., client stage was not Success/Failed/Aborted), the event was logged
and silently discarded. This caused issues with tools like stylance,
tailwind watch, or sass --watch that generate output files in response
to source file changes.

The typical failure case:
1. User saves a .module.scss file
2. dx starts rebuilding
3. stylance CLI (watching the same file) regenerates stylance.css
4. dx receives the stylance.css change event but discards it
5. Build completes with stale CSS

Now, file changes that arrive during a build are queued in a
pending_file_changes vector and processed after the build completes.
2025-12-04 14:01:29 -06:00
Evan Almloff 5b8bc358db Override strip even if you explicitly enable it in the passed profile (#5052) 2025-12-03 12:51:34 -05:00
Evan Almloff c58526a36b Disable strip setting in profile and manually strip with llvm the build (#4966)
* disable strip setting in profile and manually strip with llvm the build

* remove rustc_llvm

* disable debug if wasm opt will run

* fix clippy

* don't strip if we are splitting with wasm-split

* keep names when running wasm-split
2025-11-30 15:29:12 -05:00
Jonathan Kelley 88bc12cbb5 fix: handle wbg_cast functions by rewriting patch module (#5026)
* fix: handle wbg_cast functions by rewriting patch module

* clippy

* dont use workspace deps
2025-11-25 13:18:27 -08:00
Vance 5dc22f8132 Fix doctor target strings typo (#5012) 2025-11-24 16:43:44 -08:00
Evan Almloff 0dd2cb4b21 always resolve icons relative to the crate, not the cwd of the CLI (#5020) 2025-11-24 16:42:20 -08:00
Evan Almloff 84efc00757 Only apply subsystem to final binary, not cdylibs (#5002) 2025-11-21 10:12:49 -08:00
Tristan Phease 82d7802a81 Add windows config for correct exe file name (#4985) 2025-11-19 12:57:46 -08:00
Soheil Alizadeh 49234deacf Add aria-hidden="true" when hiding the dev toast (#4990) 2025-11-19 12:55:57 -08:00
Jonathan Kelley 6824887856 add platform flag (#4918) 2025-11-05 15:55:20 -03:00
Craig 2117c3d4e9 Note "d" for debug (#4882)
* Note "d" for debug

* Fix layout
2025-11-05 15:08:29 -03:00
Amos Wenger 55d5ec3fc8 feat: add --raw-json-diagnostics flag to dx build (#4887)
This flag allows users to get the raw JSON output from cargo instead
of having it processed by Dioxus. This is useful for integration with
other tools that expect cargo's native JSON diagnostic format.

When enabled, cargo's JSON messages are relayed directly to stdout
while still allowing DX to track essential build information internally.

Usage: dx build --raw-json-diagnostics
2025-11-05 14:57:28 -03:00
Craig 3ac4230ecf Support VSCode-Insiders in doctor command (#4892) 2025-11-05 14:57:01 -03:00
Evan Almloff e03d8ff215 fix windows builds (#4903) 2025-11-03 18:10:38 -08:00
Evan Almloff 06f39cd140 skip lib default members (#4895) 2025-11-03 12:59:07 -06:00
Jonathan Kelley 8f85114d46 prep for 0.7 release 2025-10-30 21:26:01 -07:00
Jonathan Kelley 1015a9ed6c fix dual serve (#4865) 2025-10-30 19:16:29 -07:00
Omar Mohamed Khallaf a4d1fd848d feat: add option to statically add js and css assets to the header at compile time (#4653)
Signed-off-by: Omar Mohamed <mohamed.omar67492@gmail.com>
2025-10-30 18:55:51 -07:00
Evan Almloff 43373f0be7 Fix updating components and local components (#4856)
* Fix updating components and local components

* fix typo
2025-10-28 17:02:56 -07:00
Sabin RegmiandJonathan Kelley 6e3f362872 Pipe Android/ADB logs into CLI (#4853)
* Enhance Android log handling in AppBuilder

- Introduced adb_logcat fields to manage Android logcat output.
- Implemented logcat spawning and parsing to differentiate log levels.
- Updated push_stdio method to filter Android logs based on trace settings.
- Added utility functions for retrieving app PID and parsing logcat levels.

* automatic retry to get pid

* pipe RustStdoutStderr as well

* strip logcat prefix

* filter in rust instead

* Refine log filtering in Rust output handling

- Improved log level detection by checking for prefixes after the colon in messages.
- Enhanced filtering to only show logs with standard tracing levels or fatal errors.
- Streamlined the process of stripping logcat metadata while preserving message content.

* cleanup output and kill proc

* capture logs from ios device

* clippy

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-28 12:35:34 -07:00
Jonathan Kelley 24df6439ea feat: set windows subsytem to windows for gui apps (#4855)
* feat: set windows subsytem to windows for gui apps

* typo

* clippy
2025-10-28 11:38:52 -07:00
Jonathan Kelley c3ff0c0ab3 Fix: initializer race condition causing android to break 2025-10-27 12:45:54 -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
Koji AGAWA ddeeb540fc fix(cli): correct Android toolchain target for 32-bit arm architectures (#4837)
* fix(cli): correct Android toolchain target for 32-bit arm architectures

* style: rustfmt
2025-10-27 12:40:39 -07:00
luckybelcikandJonathan Kelley 3eecfaa0a7 fix(hotpatch): Gracefully handle missing '-flavor' flag during WASM link (#4833)
* fix(hotpatch): Gracefully handle missing '-flavor' flag during WASM link

* drops logs

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-27 09:58:28 -07:00
Evan Almloff c55a29e930 fix the info message for the dx components subcommand (#4832) 2025-10-22 22:52:08 +01: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
b3966c3509 Support public dir (#4783)
* Add optional static_dir support

- add optional application.static_dir field defaulting to none
- copy configured static directory into web output during build/serve
- document config knob and add unit tests
- force full rebuild when static_dir contents change
- sync removes stale outputs and logs copy activity
- track static manifest next to platform dir

Tests: cargo fmt

* default to public dir to match vite

* static_dir -> public_dir

* wip

* deser as none...

* wip... use .manifest.json

* implement dumb form of asset manifest generation

* implement manifest using asset system directly

* cleanup

* dont create extra asset dir for server

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-20 17:03:34 -04:00
Jonathan Kelley 2f6be083ce fix merge conflict 2025-10-20 13:00:59 -04:00
Rick Wong 7408a33be7 Removed wasm rel-preload link from bundle index.html to save bandwidth for Safari users (#4796) 2025-10-20 12:20:46 -04:00
Jasper Bekkers 9a1cbf50a7 👩‍🏫 Add support for (#4811) 2025-10-20 12:05:27 -04:00
Jonathan Kelley 7856679641 remove --docs cfg to fix docsrs building (#4788) 2025-10-14 20:18:13 -07:00