Commit graph

302 commits

Author SHA1 Message Date
Jonathan Kelley
4f9d67fb45 feat: simple signals implementation 2023-01-01 19:57:33 -05:00
Jonathan Kelley
d3ab397ad3 chore: add transparency and overlay 2022-12-30 22:30:04 -05:00
Jonathan Kelley
c890051f87 chore: add back examples 2022-12-28 16:23:05 -05:00
Jonathan Kelley
bc3cf6501c feat: complete html to rsx rosetta 2022-12-28 16:22:20 -05:00
Jonathan Kelley
14bc007c15 wip: refactor out translation into its own crate 2022-12-28 11:51:41 -05:00
Adrian Wannenmacher
dbbfdefc21
Merge branch 'master' of github.com:DioxusLabs/dioxus into router-2 2022-12-23 18:19:02 +01:00
Jonathan Kelley
8d7d07db56 chore: make clippy happy in workspace crate 2022-12-19 11:56:44 -08:00
Adrian Wannenmacher
a7e9b32f7e
Merge branch 'master' of github.com:DioxusLabs/dioxus into router-2 2022-12-14 17:19:37 +01:00
Jonathan Kelley
5c20e651da fix: get rollover working 2022-12-13 14:44:47 -08:00
Adrian Wannenmacher
1d69698ec9
Merge branch 'master' of github.com:DioxusLabs/dioxus into router-2 2022-12-08 23:01:12 +01:00
Jonathan Kelley
f075a519cc chore: prevent publishing 2022-12-07 13:21:38 -08:00
Jonathan Kelley
6184ea500b chore: also fix native core 2022-12-07 13:20:31 -08:00
Adrian Wannenmacher
1f1c49b9c9
add router core 2022-12-03 21:49:16 +01:00
Jonathan Kelley
3b166c9edd wip: clean up some things 2022-11-30 23:54:30 -05:00
Jonathan Kelley
18d6b1ad6f feat: get web working properly 2022-11-30 17:21:10 -05:00
Jonathan Kelley
4a31b29703 feat: simple tests passing 2022-11-01 18:42:29 -07: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
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
Reinis Mazeiks
6c323e9fc5
Rework Guide (#486)
* Move getting started to Guide

* Clean up summary and getting started

* Shorten intro by moving stuff to individual platform docs

* Make intro even shorter, summarize features

* Further cleanup; move development-related docs to separate section

* Make `guide` a crate. Turn code samples into examples so that we can check if they compile

* Rewrite "Describing the UI":

* Focus on RSX syntax (interactivity covered in later chapters); make sure samples are tested; concise language

* Move some "special attribute" samples to the `examples` directory

* Simplify introduction to components

* Simplify introduction to component props

* Document Prop features; add code samples

* Simplify component children docs

* Interactivity: better introduction to events

* Hooks: better introduction

* Remove outdated doc

* Introducs use_ref

* Simplify User Input chapter

* Document event handler props

* Meme editor example

* Meme editor walkthrough

* Add dark mode example

* Guide for context; dark mode example

* Guide: custom hooks

* Guide: conditional rendering

* Guide: rendering lists

* Guide: rendering lists + keys

* Move remaining infor from Reference to guide

* Delete reference book
2022-07-07 08:50:36 +00:00
Jonathan Kelley
e627a66acc Merge branch 'master' into jk/autofmt 2022-06-30 15:23:05 -04:00
Evan Almloff
706b6c957b change hot_reload to hot-reload in dev-dependancies 2022-06-26 07:26:03 -05: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
6c20d74797 finish cleanup 2022-06-25 08:48:03 -05:00
Evan Almloff
fbf8e13b8d clean up imports 2022-06-25 08:27:10 -05:00
YuKun Liu
1c31fd0e22
Update Cargo.toml 2022-06-25 15:36:47 +08:00
Jonathan Kelley
5b9e34aadd feat: add fork of prettyplease for autoformatting 2022-06-24 14:22:08 -04:00
Evan Almloff
9be8cc503f restore router 2022-06-16 21:08:48 -05:00
Evan Almloff
79ddab2720 restore dev-dependancies 2022-06-16 21:07:18 -05:00
Demonthos
df4ea20bb8 create serde compatible parse error 2022-06-15 12:58:08 -05:00
Evan Almloff
017d269ca8 fix websocket error reporting 2022-06-09 09:36:28 -05:00
Evan Almloff
3cd4175e2e remove braces from captured variables 2022-06-05 08:39:50 -05:00
Evan Almloff
0079f7d18b WIP: expose pipe for desktop 2022-06-02 13:33:08 -05:00
Evan Almloff
3b2ac82e8d fix spelling of interpreter 2022-05-31 12:18:22 -05:00
Evan Almloff
195dd22206 don't compile dioxus-router unless the router feature is enabled 2022-05-28 12:11:47 -05:00
Evan Almloff
f9713b2fe9 Merge remote-tracking branch 'origin/master' into jk/rsx-refactor 2022-05-27 17:56:50 -05:00
Evan Almloff
13125fef4e restore dev dependancies 2022-05-27 17:54:36 -05:00
Evan Almloff
fb4cb1a05b remove autoformat 2022-05-25 14:02:43 -05:00
Evan Almloff
ca10d89670 add RsxTextIndex 2022-05-25 11:20:07 -05:00
Evan Almloff
c7c84da8ab WIP hot reload 2022-05-25 08:58:59 -05:00
Jonathan Kelley
8ab1c4d0de feat: upgrade wry 2022-05-05 16:29:24 -04:00
Jonathan Kelley
4ef2cfaba5 fix: specify version 2022-05-03 00:05:54 -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
Evan Almloff
0b1e17c830 add native-core-macro to workspace 2022-05-02 20:25:29 -05:00
Jonathan Kelley
4fa909e864 feat: ensure parsing works with right indicies 2022-04-24 19:38:28 -04:00
Jonathan Kelley
2a1970b3a9 feat: add prettyplease vendored and get basic test working 2022-04-24 02:55:20 -04:00
Jonathan Kelley
794f43ffee concept: move rsx out to its own crate 2022-04-24 02:35:52 -04:00
Evan Almloff
c8919ad77b add benchmark 2022-04-20 21:44:37 -05:00
Evan Almloff
92f48169e9 WIP new api 2022-04-08 21:17:37 -05:00
Evan Almloff
5b25500c0b finishing touches and benchmarks 2022-03-30 20:45:41 -05:00
Evan Almloff
26d92b6e51 rebase master 2022-03-26 20:27:10 -05:00
Ilya Maximov
b8573bc4dd
refactor: remove the rsx folder
it doesn't seem to be published anywhere or used at all
2022-03-19 20:35:53 +01:00
Jonathan Kelley
7e9d7c3ef0 feat: add feature flag for liveview 2022-03-15 01:57:40 -04:00
Jonathan Kelley
71184b51a0 feat: liveview working with warp 2022-03-15 01:02:44 -04:00
Jonathan Kelley
3f130d9bd0 fix: use updated version of stretch for layout 2022-03-09 21:42:37 -05:00
Jonathan Kelley
ed07e914d3 fix: compile router on web 2022-03-09 21:14:22 -05:00
Jonathan Kelley
1c2e5e2aea publish: update dioxus with router fix 2022-03-09 17:53:02 -05:00
Jonathan Kelley
e7505188d6 release: make a new 0.2.0 release of Dioxus 2022-03-09 14:24:05 -05:00
Jonathan Kelley
58a20913b6 chore; make tui pass clippy 2022-03-09 13:30:44 -05:00
Jonathan Kelley
83be3df42a cfg: expose router feature flags for web 2022-03-04 14:34:25 -05:00
Jonathan Kelley
c19995fed9 fix: debug multistage edits in desktop 2022-03-04 13:17:01 -05:00
Jonathan Kelley
e04a6d63a5 chore: move tests out of core and into the top level crate
This commit moves the tests out of core so rust analyzer
is happier with the workspace.
2022-03-02 22:48:22 -05:00
Jörg Kurlbaum
cc0e2c4877 Add options for compilation on systems that lack libappindicator3 2022-02-24 14:32:43 +01:00
Jonathan Kelley
45231651dd fix: quick patch 2022-02-22 16:34:06 -05:00
Jonathan Kelley
93b4f745af
Merge pull request #132 from DioxusLabs/jk/partialexpansion
feat: split out rsx into its own crate
2022-02-19 00:02:10 -05:00
Jonathan Kelley
c1d692dd97 fix: dioxus must specify rust versionand edition 2022-02-18 23:33:48 -05:00
Jonathan Kelley
b93487282d feat: move files around 2022-02-18 20:54:30 -05:00
Jonathan Kelley
7c788e59f5 Merge branch 'master' into jk/partialexpansion 2022-02-18 15:34:52 -05:00
Jonathan Kelley
b2472e3cfe Merge branch 'master' into jk/partialexpansion 2022-02-18 15:31:49 -05:00
Jonathan Kelley
d461ffc011 feat: integrate fermi 2022-02-17 10:38:51 -05:00
Christoph Grabo
ee2b869e99
Add optional feature flags of wry
Check wry's documentation for each.
Some of them are platform dependent or
have platform dependent effects.
(mostly MacOS and Linux)
2022-02-13 20:30:10 +01:00
Christoph Grabo
c502535724
Update dependencies
Specifically set wry to 0.13;
this has breaking changes (notably: RPC -> IPC).
2022-02-13 20:30:10 +01:00
Jonathan Kelley
ca7ce46cdb Merge branch 'master' into jk/partialexpansion 2022-02-13 12:36:02 -05:00
Jonathan Kelley
ee67a041d2 feat: turn interpreter into crate 2022-02-01 15:38:48 -05:00
Dave Rolsky
d8ee553eac Fix the license field in Cargo.toml to be valid SPDX 2022-01-30 11:44:56 -06:00
Jonathan Kelley
875977f5a6 publish: update 0.1.8 for dioxus 2022-01-29 10:48:41 -05:00
Jonathan Kelley
9b3192323e Release dioxus-desktop v0.1.6 2022-01-29 10:43:43 -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
d570bb6c42 Release dioxus-router v0.1.1 2022-01-29 10:40:03 -05:00
Jonathan Kelley
2c51a090e3 Release dioxus-web v0.0.5 2022-01-29 10:37:50 -05:00
Jonathan Kelley
3c2d5985da Release dioxus-ssr v0.1.3 2022-01-29 10:37:34 -05:00
Jonathan Kelley
539ca2d655 Release dioxus-hooks v0.1.7 2022-01-29 10:37:03 -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
1b2a0053ef Release dioxus-core-macro v0.1.7 2022-01-29 10:35:54 -05:00
Jonathan Kelley
174d287062 wip: extract to rsx module 2022-01-17 23:02:36 -05:00
Jonathan Kelley
abfac0d59b wip: move macro lib out of proc macro crate 2022-01-17 16:37:44 -05:00
Jonathan Kelley
0d1a9eb460 release: add version for router 2022-01-08 02:32:26 -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
53ef41aa3d examples: simplfy running them by enabling features automatically 2022-01-07 10:50:37 -05:00
Jonathan Kelley
cb2782b4bb wip: memoize dom in the prescence of identical components 2022-01-05 00:27:22 -05:00
Jonathan Kelley
7cf15ee4e8 publish: include desktop fixes 2022-01-03 21:36:43 -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
fdbc2bc915 publish: remove router 2022-01-03 14:08:31 -05:00
Jonathan Kelley
b3b4c580df wip: bump versions 2022-01-03 14:07:22 -05:00
Jonathan Kelley
54103da019 publish: bump desktop version 2022-01-03 14:03:17 -05:00
Jonathan Kelley
99d6409f7a publish: bump mobile 2022-01-03 13:38:56 -05:00
Jonathan Kelley
1b6e608cd0 docs: update references 2022-01-03 10:20:14 -05:00
Jonathan Kelley
ee2068fd5c publish: bump main crate 2022-01-03 02:24:21 -05:00
Jonathan Kelley
a2317bf5b0 publish: ssr 2022-01-03 02:23:26 -05:00
Jonathan Kelley
d78815103d wip: remove hooks warnigns 2022-01-03 02:20:11 -05:00
Jonathan Kelley
c1f8424693 publish: desktop 2022-01-03 02:18:11 -05:00
Jonathan Kelley
420a30e5d4 feat: overhaul examples and clean things up 2022-01-03 00:42:17 -05:00
Jonathan Kelley
14961023f9 wip: polish some more things 2021-12-29 21:28:28 -05:00
Jonathan Kelley
934de21dd6 wip: miri stress tets 2021-12-18 23:03:59 -05:00
Jonathan Kelley
2c3a046426 wip: prepare to change our fragment pattern. Add some more docs 2021-12-18 15:17:32 -05:00
Jonathan Kelley
2b928372fb 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.1 2021-12-15 16:07:09 -05:00
Jonathan Kelley
6a3c61fae8 fix: version number 2021-12-15 16:07:07 -05:00
Jonathan Kelley
3a706ac416 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:04:30 -05:00
Jonathan Kelley
e4c06ce8e8 docs: update cargo tomls 2021-12-15 16:04:27 -05:00
Jonathan Kelley
270dfc9590 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 15:59:11 -05:00
Jonathan Kelley
3ddf395772 wip: docs 2021-12-14 22:59:34 -05:00
Jonathan Kelley
1e4a599d14 wip: rename fc to component 2021-12-09 21:19:31 -05:00
Jonathan Kelley
93d4b8ca7c wip: some docs and suspense 2021-11-23 15:53:57 -05:00
Jonathan Kelley
a5f05d73ac wip: docs and router 2021-11-19 00:49:04 -05:00
Jonathan Kelley
1e6e5e611b wip: move examples around 2021-11-03 15:13:50 -04:00
Jonathan Kelley
d298b626d3 wip: add router 2021-11-03 00:35:56 -04:00
Jonathan Kelley
83dd49d890 chores: slim deps and upgrade docs 2021-10-19 12:09:23 -04:00
Jonathan Kelley
16dbf4a6f8 wip: book documentation 2021-10-16 17:04:28 -04:00
Jonathan Kelley
460783ad54 docs: lnks to projects 2021-10-14 12:46:50 -04:00
Jonathan Kelley
2403990ea3 docsd: more example images 2021-10-12 02:26:06 -04:00
Jonathan Kelley
a2b0c50a34 feat: add update functionality to useref 2021-10-04 10:22:20 -04:00
Jonathan Kelley
7a03c1d2b4 wip: overhaul event system 2021-10-04 01:28:04 -04:00
Jonathan Kelley
82953f2ac3 wip: threadsafe 2021-10-01 02:07:12 -04:00
Jonathan Kelley
10d335ae31 publish: remove wildcards 2021-09-24 21:35:32 -04:00
Jonathan Kelley
718fa14b45 feat: a cute crm 2021-09-24 01:24:03 -04:00
Jonathan Kelley
1a2f91ed91 polish: examples 2021-09-24 00:05:56 -04:00
Jonathan Kelley
725b4a1d7f wip: fix some event stuff for web and core 2021-09-02 00:37:57 -04:00
Jonathan Kelley
3bf19d8106 wip: more work on web
this commit adds complete event support for web-sys but with a few hole
2021-08-25 10:49:18 -04:00
Jonathan Kelley
c1afeba1ef wip: groundwork for noderefs 2021-08-09 17:09:33 -04:00
Jonathan Kelley
49856ccd68 wip: making progress on diffing and hydration 2021-07-28 21:46:53 -04:00
Jonathan Kelley
f782e14211 feat: omg what a dumb mistake 2021-07-27 00:27:07 -04:00
Jonathan Kelley
583fdfa561 docs: big updates to the reference 2021-07-16 16:11:25 -04:00
Jonathan Kelley
caf772cf24 wip: docs, html! macro, more 2021-07-16 00:27:06 -04:00
Jonathan Kelley
8f0bb5dc5b chore: cleanup workspace 2021-07-15 18:40:12 -04:00
Jonathan Kelley
3bedcb93ca feat: svgs working in webview 2021-07-15 12:18:11 -04:00
Jonathan Kelley
3a57b94262 feat: task system works
but I broke the other things :(
2021-07-14 02:04:19 -04:00
Jonathan Kelley
775e9e29b8 wip: cut down on errors 2021-07-13 16:48:11 -04:00
Jonathan Kelley
a85b8c4b6b wip: apply formatting 2021-07-12 13:03:24 -04:00
Jonathan Kelley
56e7eb83a9 wip: more examples 2021-07-11 19:31:07 -04:00
Jonathan Kelley
304259d818 wip: move examples around 2021-07-11 18:39:45 -04:00
Jonathan Kelley
9abb0470b7 feat: static node infrastructure and ssr changes 2021-07-11 14:49:52 -04:00
Jonathan Kelley
975fa566f9 wip: more refactor for async 2021-07-09 12:47:41 -04:00
Jonathan Kelley
8cfc437bfe wip: some project refactor 2021-07-09 11:54:07 -04:00
Jonathan Kelley
7aec40d57e feat: enable arbitrary body in rsx! macro 2021-07-07 18:17:00 -04:00
Jonathan Kelley
fd7933561f chore: move CLI into its own "studio" app 2021-07-07 16:58:23 -04:00
Jonathan Kelley
22e659c2bd feat: namespaced attributes
this commit adds namespaced attributes. This lets us support attribute groups, and thus, inline styles.

This namespaced attribute stuff is only available for styles at the moment, though it theoretically could be enabled for any other attributes.
2021-07-06 23:04:33 -04:00