Commit Graph
108 Commits
Author SHA1 Message Date
Jon Kelley 051f85f78f Merge branch 'master' into return-from-js 2022-12-09 13:19:05 -08:00
Evan Almloff bf47f64852 Merge branch 'upstream' into return-from-js 2022-12-08 11:25:15 -06:00
Evan Almloff e863ef29b8 allow returning values from use_eval 2022-12-08 10:44:56 -06:00
Evan Almloff b79ad4f50e Merge remote-tracking branch 'upstream/master' into optimize-templates-v3 2022-12-07 17:20:31 -06:00
Evan Almloff 5c6c235df0 cleanup code 2022-12-07 15:48:25 -06:00
Jonathan Kelley b182a6ee75 chore: clean up interpreter and bindings 2022-12-05 16:47:04 -08:00
Jonathan Kelley 18d6b1ad6f feat: get web working properly 2022-11-30 17:21:10 -05:00
Jonathan Kelley 073fea9ed3 Merge branch 'master' into jk/templates-v3 2022-11-16 22:24:21 -08:00
Demonthos f21c8423eb optimizations for wasm size (#582)
* optimize for size

* fix tests

* revert log feature

* make backtrace not optional

* remove dev feature from web dev-deps
2022-11-16 22:22:13 -08:00
Jonathan Kelley 90982e0ccb wip: start to refactor out hot reloading from packages
Also implement alternative simpler template system
2022-10-20 09:56:09 -07:00
saicu e8c48d46cf replace fxhash crate with rustc-hash (#588) 2022-10-12 18:27:26 -07:00
Demonthos 047ed1e553 Subtree memorization / reactive templates (#488)
This commit adds subtree memoization to Dioxus.

Subtree memoization is basically a compile-time step that drastically 
reduces the amount of work the diffing engine needs to do at runtime by
extracting non-changing nodes out into a static "template." Templates 
are then understood by the various renderers in the ecosystem as a 
faster way of rendering the same items. 

For example, in the web, templates are simply a set of DOM Nodes created 
once and then cloned later. This is the same pattern frameworks like Lithtml
and SolidJS use to achieve near-perfect performance. 

Subtree memoization adds an additional level of complexity to Dioxus. The RSX
macro needs to be much smarter to identify changing/nonchanging nodes and
generate a mapping between the Template and its runtime counterparts.

This commit represents a working starter point for this work, adding support 
for templates for the web, desktop, liveview, ssr, and native-core renderers.
In the future we will try to shrink code generation, generally improve 
performance, and simplify our implementation.
2022-09-30 12:03:06 -07:00
Jon Kelley d9546d9504 Renderers are now packages, not features. (#387)
* feat: use synchronous router design

* feat: function to get router out of dom

* chore: restructure workspace to use renderers as packages, not features
2022-07-09 15:15:20 -04:00
Evan Almloff 041f474329 Merge remote-tracking branch 'upstream/master' into clean_up_rsx_imports 2022-06-26 07:22:55 -05:00
YuKun Liu 0af69f83f2 Rename hot_reload to hot-reload 2022-06-26 14:23:19 +08:00
Evan Almloff fbf8e13b8d clean up imports 2022-06-25 08:27:10 -05:00
Evan Almloff 586983291a log parse errors 2022-06-13 17:02:43 -05:00
Evan Almloff e7cf382784 create websocket for hot reloading 2022-06-06 13:30:32 -05:00
duanzhou 328bab0f5b Fix: enable dioxus-core serialize feature in dioxuse-web 2022-05-18 00:30:36 +08:00
Jonathan Kelley 356f37e9ee feat: arbitrary attributes 2022-05-05 16:50:33 -04:00
Jonathan Kelley 3febd42588 Release dioxus-core v0.2.1, dioxus-core-macro v0.2.1, dioxus-html v0.2.1, dioxus-interpreter-js v0.2.1, dioxus-desktop v0.2.3, dioxus-hooks v0.2.1, dioxus-liveview v0.1.0, dioxus-native-core v0.2.0, dioxus-native-core-macro v0.2.0, dioxus-router v0.2.3, dioxus-ssr v0.2.1, dioxus-tui v0.2.2, dioxus-web v0.2.1, fermi v0.2.1, dioxus v0.2.4 2022-05-02 23:57:20 -04:00
Aster 329b182e2d Add feature gate 2022-04-24 11:48:15 +08:00
Jon Kelley 5c6ff70dd4 Merge pull request #316 from DioxusLabs/jk/fix-hydration
fix: setnode method for rehydration code
2022-03-20 20:11:55 -04:00
Jonathan Kelley f26f704b6b fix: setnode method for rehydration code 2022-03-17 10:51:23 -04:00
Joshua Kifer 1b736f1001 Remove release_max_level features from several Cargo.toml log dependencies 2022-03-15 17:59:30 -06:00
Jonathan Kelley e7505188d6 release: make a new 0.2.0 release of Dioxus 2022-03-09 14:24:05 -05:00
Jonathan Kelley 3873cd1a60 fix: remove unused depds 2022-02-16 14:40:45 -05:00
Jonathan Kelley e43a8a9b6a feat: remove old async channel for new channel in ric raf web code 2022-02-15 11:03:13 -05:00
Jonathan Kelley 4f46089fce feat: use serde-wasm-bindgen crate for speedup 2022-02-07 10:17:16 -05:00
Jonathan Kelley 169f1dac11 Merge branch 'master' into jk/form-ma 2022-02-04 18:10:26 -05:00
Jonathan Kelley ca0d7dc268 fix: remove code generation 2022-02-04 01:56:54 -05:00
Jonathan Kelley c4556d050e Merge branch 'master' into jk/form-ma 2022-02-02 01:50:43 -05:00
Jonathan Kelley 527434b9f9 feat: make the interpreter as its own crate 2022-02-01 15:44:08 -05:00
Jonathan Kelley 7c06b3a9a2 Merge branch 'master' into jk/form-ma 2022-02-01 15:24:19 -05:00
Jonathan Kelley 6339fa8188 Release dioxus-html v0.1.6, dioxus-router v0.1.1 2022-01-29 10:42:52 -05:00
Jonathan Kelley f6c6134d67 Release dioxus-core v0.1.9 2022-01-29 10:42:38 -05:00
Jonathan Kelley 2c51a090e3 Release dioxus-web v0.0.5 2022-01-29 10:37:50 -05:00
Jonathan Kelley 11ba189eab Release dioxus-html v0.1.5 2022-01-29 10:36:24 -05:00
Jonathan Kelley f965030b80 Release dioxus-core v0.1.8 2022-01-29 10:36:10 -05:00
Jonathan Kelley 1406c9020b feat: add panic hook by default 2022-01-24 02:57:56 -05:00
Jonathan Kelley f66d17ca84 wip: pass form data between web and desktop 2022-01-22 14:53:59 -05:00
Jonathan Kelley 10db6ad65b wip: web now links against the js interprter code 2022-01-12 08:57:42 -05:00
Jonathan Kelley 40d1f85d0c Release dioxus-core v0.1.7, dioxus-core-macro v0.1.6, dioxus-html v0.1.4, dioxus-desktop v0.1.5, dioxus-hooks v0.1.6, dioxus-mobile v0.0.3, dioxus-router v0.1.0, dioxus-ssr v0.1.2, dioxus-web v0.0.4, dioxus v0.1.7 2022-01-08 02:25:03 -05:00
Jonathan Kelley bbb6ee10de feat: make hydration more robust 2022-01-07 00:33:09 -05:00
Jonathan Kelley 4ea5c990d7 publish: new versions of everything 2022-01-03 19:44:04 -05:00
Jonathan Kelley 4f92ba4160 wip: bump all versions 2022-01-03 19:32:27 -05:00
Jonathan Kelley c0cd50b1d3 publish: dioxus web 2022-01-03 02:15:34 -05:00
Jonathan Kelley 2d58d380be publish: get web ready gto publish 2021-12-29 13:37:25 -05:00
Jonathan Kelley 0d480a4c43 Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.0 2021-12-15 16:06:15 -05:00
Jonathan Kelley 868f6739d2 fix: keyword length 2021-12-15 16:06:13 -05:00