* changes to support axum 0.8
* fixing ci/cd failures. I would like advice on the change to cli/server
* putting back in something I took out because I am retarded
* update server function revision
* remove playwright test results
* clippy
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* Change the suspense streaming context after suspense is resolved in the router
* Wait for the suspense context before streaming the first chunk in ssr
* forward more response parts
* warn
* extract the hydration format into a crate
* Fix hydration when no data is sent
* forward web and server features
* Fix suspense that starts on the client
* fix use_server_future on the client
* Add documentation for fullstack hooks and protocol
* downgrade rust edition
* fix clippy
* fix tests
* fix clippy
* Fix pure web compile
* undo changes to the fullstack router example
* fix formatting
The current `axum` feature and `server` feature are incompatible with wasm32-unknown-unknown target
due to:
1. depends on axum features not compatible with wasm
2. SSR requires reading the filesystem for index.html
With this patch I add the `server_fn_axum` feature which disables SSR and enables targeting
wasm32-unknown-unknown with server functions enabled.
Note that for this to work, `server_fn` depends on `inventory` and as stated in this docs depending on
the context you might need to expose and call [`__wasm_call_ctors`](https://docs.rs/inventory/latest/inventory/#webassembly-and-constructors)
(I needed that specifically for cloudflare workers)
change axum_server_fn feature for axum_wasm and include SSR tools there
This change additionaly make axum_server_fn feature additive by exposing a different
`DioxusRouterWasmExt` with only the wasm-compatible parts instead of exposing the
`DioxusRouter` trait under the same name.
Docs are updated to reflect this change.
rename axum_wasm to axum_core and update docs
fix typo
re-enable default-features for axum in dioxus-cli
re-enable axum default-features for liveview
re-enable default-features for axum for playwright-tests
* return a 404 when paring the route fails
* add a playwright test for fullstack routing status codes
* Fix new playwright test
* document SSRError
* Make SSRError public and fix clippy
* Move the error display bound to the routable trait
* fix clippy
* return a more generic 404 message
* fix router tests
* Add server context to suspense resolution
While this was done correctly in the streaming case, non-streaming
suspense resolution didn't recieve the server context. This meant that
anything that required the context after the point of suspension would
find it missing.
* fmt
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* Fix hydration of suspense fragments that contain text nodes
* fix release builds
* disable link deduplication
* restore meta tag deduplication
* Add a test for the failed hydration case
* make changes to the document trait non-breaking
* remove info log from server future hook
* restore default implementation - this was also a breaking change
* fix semver breakage
* clean up server_future
* Cleanup unused code
* fix clippy
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* feat: integrate dioxus-logger inline
* remove log/simple logger references
* fix: add dioxus-data-id-0 to root elements to not emit errors internally
* drop config.toml and use cargo.toml profiles instead
* make clippy happy with the unit value lint
* feat: better presentation for logging
* Create a crate for constant serialization of config structs for manganis
* use SerializeConst for the image asset builder
* switch to a declarative macro for assets
* clean up asset macro a bit
* add serializable options for each asset type
* serialize const vec
* Add unique path formatting
* implement the new manganis macro
* optimize assets in the CLI
* Fix clippy
* Fix assets with dioxus formattable
* reduce fuzzing test limits
* use the new syntax in examples
* fix formatting
* Final doc and test pass on const-serialize
* fix avif support
* Fix manganis doc tests
* cache asset optimization
* Split out asset and bundled asset
* make hash pointer width independent
* remove const serialize cargo lock
* Fix manganis macro docs
* all tests passing
* add constvec::is_empty method to fix clippy lint
* remove nasm feature
* simplify test_rsplit_once test so typos passes
* fix range syntax for stable
* revert example change from clippy fix
* remove dioxus-static-site-generation workspace dependency
* always accept unix paths
* fix windows path seperator
* fix folder asset hash
* Optimize assets in a blocking task
* Fix asset options docs
* Document Asset and BundledAsset
* move manganis back into it's own folder
* simplify the linker macro a bit
* add more docs to AssetParser expansion
* fix manganis core doc test
* add image format helpers
* Fill in new cargo.tomls
* fix folders with explicit options
* Split by both unix and windows path separators and take the smallest one
* fix string length
* Fix base path on web and fullstack
* Fix assets with base path
* fix fullstack base route with trailing slash
* fix clippy
* clean up logging to avoid random extra trace
* fix race condition with updates
* properly wire up verbose
* fix bundling (macos) and logging
* Add structured output
* clean up clap names
* extract out wire format
* switch structured key to json
* fix random println, fallback to `dioxus/platform`
* clean up logging for run/build
* clean up logging around project
* remove manual exits
* fix tokio runtime for mobile
* rework dog app
* rip out ssg
* Switch dioxus/axum to dioxus/server
* add android template inline
* pre restructure for bundle prep
* add the whole res directory
* Better theme for the app
* remove mobile demo now that most apps work natively
* self-referential android
* only use deep linking for assets
* fix imports for android
* clippy, fixup ios and android
* I'm not boxing compiler message you can't make me
* fix clippy on unix
* wip: fix manganis import path
* upgrade tauri bundler, convert todo!() to unimplemented!()
* feat: mobile hotreloading + ios asset configuration
* remove oid demo and its associated env vars
* nuke all the things that cause cache thrashing
* swap to Asset type
* add some more logs
* display impl for attrvalue
* dont panic on collect failure
* cut down web deps to 150
* clean up deps in a lot of places, simplify build scripts
* clean up asset resolution and cli-dev profile
* wire up absolute paths for manganis asset in a particular mode
* move document related things around to shorten compile times
* move most things to `document::Item` and then decompose the cli-config
* switch link to stylesheet for clarity in examples
* move manganis workspace example to examples folder
* decompose manganis-cli-support
* dont need mobile demo anymore
* remove gloo dialogs
* html doesnt need document
* rename hotreload to devtools
* really clean up the html crate
* fix weird rsx spacing
* clean up desktop to use callback
* clean up document a bit
* re-wire up devsocket
* fix utf css
* yeeeet that js out of here
* synthetic web system works
* web crate almost done being cleaned up
* desktop mostly cleaned up too
* clean up cli a bit
* more cli cleanup
* cli builds again
* clean up cli, inline structs, cut down number of unique types where possible
* hotreload works again for desktop and this time, mobile too
* cfg out tungstenite
* devserver err
* more refactor to cli builder
* switch to unbounded_send
* new structure is much cleaner
* add http serve subcommand
* bundled hotreload
* kick stylsheets
* clean up a bit more, split up eventloop
* amazingly serve seems done
* change from pub to pub(crate) in cli
* remove tools
* bit more polish to cli
* fix issue with join
* gracefully handle fullstack without a server
* fullstack mobile demo
* fix launch function, move projects into example-projects folder
* hoist examples
* add "run" command
* clean up launch
* remove old manual websocket receiver
* doctor command
* allow desktop to scroll
* cut apart router crate
* dont put launch in prelude
* use dioxus::launch where possible
* rename rsx, cut out hotreload tests
* remove liveview project
* bump native
* fix compile for renderers
* move sync event response out of interpreter
* move render in serve
* rollback settings change
* cli compiles, huzzah!
* change uris for asset
* fix asset
* new tui screen
* new cargo-like tui works
* very very verty close
* it works! very small bug with incorrect grapheme calc
* Clean up devserver a bit
* status sytem
* tidy up debug filters
* clean up logging situation
* Fix a number of bugs with log printing
* new printing system is more reliable
* wire up more stuff
* things working but fullstack is having issues
* fullstack works again!
* hotreloading bundled assets works again
* bundled hotreload and beginnings of macos bundling
* Hotreload desktop
* combined server builds
* add build handle
* fix fullstack assets
* make open async, add some hooks for ios
* migrate filemap to runner
* wip global crate system
* fixup bundles + organize asset
* fix asset location bug
* all the bundled reloading!
* open ios simulator!
* full hotreload support for mobile + serverfn
* basic cleanups
* clean up dx
* Move filemap
* fix cutting of newlines
* assets workibg, some android
* hoist wry/tao
* use sync locks and headers to fix issues with android
* desktop -> mac/win/linux with alias
* better logging
* feat: workspace (entire computer!) hotreload
* should rebuild toggle, ios simulator bootup
* proper mobile support in launch
* more robust handling of assets
* fix cargo
* bring back some of tauri bundle
* make warnings go away, clippy happy on cli
* some final clippy cleanups
* fmt
* move manganis to its own folder
* upgrade bundle to stable
* drastically slim down manganis, prepping for merge
* typos, failing test, docsrs config
* remove static gen test
* nix static gen test
* we use --platform web instead of --platform fullstack now
* only bind dev urls in desktop/mobile
* install gtk
* nix static gen
* split build dir by app name
* add a default head method through eval
* remove the old document trait
* implement document for each platform
* pull out document into a dedicated crate to cut down on shared dependencies
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* improve documentation for the fullstack server context
* Add a section about axum integration to the crate root docs
* make serve_dioxus_application accept the cfg builder directly
* remove unused server_fn module
* improve fullstack config docs
* improve documentation for the server function macro
* fix axum router extension link
* Fix doc tests
* Fix launch builder
* Simplify the launch builder
* don't re-export launch in the prelude
* refactor fullstack launch
* Fix fullstack launch builder
* Update static generation with the new builder api
* fix some formatting/overly broad launch replacements
* fix custom menu example
* fix fullstack/static generation examples
* Fix static generation launch
* A few small formatting fixes
* Fix a few doc tests
* implement LaunchConfig for serve configs
* fix fullstack launch with separate web and server launch methods
* fix check with all features
* dont expose inner core module
* clippy and check
* fix readme
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* improve documentation for the fullstack server context
* Add a section about axum integration to the crate root docs
* make serve_dioxus_application accept the cfg builder directly
* remove unused server_fn module
* improve fullstack config docs
* improve documentation for the server function macro
* fix axum router extension link
* Fix doc tests
* Fix launch builder
* Remove redundant server_only inside server function
* Fix isrg config path
* Fix hot reloading components with keys
* include component formatted segment keys, but not dynamic component value
* extend each head component with the corresponding element
* Allow spreading custom attributes into components
* Fix component_literal_dyn_idx index
* add a new test for hot reloading components with keys
* FIx script without body warning and rendering styles with a href set
* fix clippy
* hoist example projects, remove oidc
* move over example projects from the separate repo
* Update ecommerce site to the latest version of dioxus
* update wifi scanner to 0.5
* drop the chatbot example; might be restored in a separate PR
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* Fix nested rsx expansion by not using template titles
* fix writers with nameless templates
* fix clippy
* dont commit vscode fix
* fix release mode, pull out __template_name
* fix axum_desktop
* Fix core tests
* Make most fields of HotReloadedTemplate public for testing
* wip: formatting, compare all diff cases
* slightly smarter diffing for dynamic nodes
* add a comment about generic node diffing
* clean up mutations a bit
* fix load template
* simplify maybe_rebuild
* Restore write mutations flag in web
* write_mutations -> skip_mutations
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* add liveview cli support
* Fix TUI fullstack deadlock
* look for fullstack assets in the public directory
* Fix fullstack with the CLI
* Fix static generation server
* CI: add docsrs to ci
* add env vars
* no need for tokio things
* whoops, wrong rust nightly
* add swc
* bump crate versions to 0.6.0-alpha.0
* hoist up warnings and shuffle cargo.toml
* update cargos and disable warnings from ci
* attempt fix of aws
* attempt disabling aws_lc_sys globally
* pull in lc-sys
* add fips feature to fix docs
* turn on features for aws-lc-sys on cargo-doc-all
* pass along more args
* fix cfg docs
* fix: flakey gen box test
* fix: doc_cfg in static gen
* dont include readme
* fix error on static gen
* remove random line
* temporarily disable warnings
* simplify axum desktop so it doesnt count as a lib
* fix binstall link
* bump locks
* lock fixes
* revert axum desktop
* dont publish some crates
* use head elements and new manganis syntax in examples
* only enable desktop workspace example scraping during a dioxus release
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* Moves index.html creation until after wasm creation so the webserver doesn't prematurely serve the page
* sets up nasm for windows builds (to be superseded by Remove Dioxus CLI NASM dependency #2666#2682)
* puts magnanis-cli-support in a blocking task to prevent threadlocking during sequential builds
* changes order of client/server builds such that the client is built before the server so the webserver doesn't prematurely serve invalid client code
* declobbers "serve" such that each project gets a different dir in the target folder
* uses nest_service instead of fallback so the router doesn't respond with fallback codes
* reincorporates doge's fix from Fix hot-reloading on Windows #2544