wip: ....sigh..... so the diffing algorithm is robust

but it's still not finished.

We need to re-enable the fancier keyed diffing versions some point (soon!).
This commit is contained in:
Jonathan Kelley committed 2021-07-12 03:58:46 -04:00
1 parent ff0a3d1c83
commit 68ed1c04e7
10 files changed
+168 -102

No files matched your search

+22
View File
@@ -36,6 +36,28 @@ If you know React, then you already know Dioxus.
- Powerful and simple integrated state management
- Rust! (enums, static types, modules, efficiency)
### Unique features:
- Incredible inline documentation - supports hover and guides for all HTML elements, listeners, and events.
- Templates are "constified" at compile time - nodes that don't change won't be unnecessarily diffed.
- Rust's smart pointers make use_state extremely easy and fun to work with.
- Starting a new app takes zero templates or special tools - get a new app running in just seconds.
- Desktop apps running natively (no Electron!) in less than 10 lines of code.
- Multiple flavors (raw, html, rsx) of templating to pick-and-choose for the type of component.
- Extensible DSL through traits and impls plus support for WebComponents.
- Simple-to-implement trait for new reconcilers.
- Fast retained-mode server-side-renderer that works with buffered writers, files, and strings.
- Compile-time correct inline CSS as well as global styling.
- Integrated "signal" system allows for near-instant updates by skipping the diff algorithm entirely.
- Built-in cooperative scheduler (IE React's fiber mechanism).
- Built-in asynchronous scheduler for coroutines and tasks within components.
- Built-in suspense scheduler for Rust's futures.
- Custom bump-allocator backing for all components. Nearly 0 allocations for steady-state components.
- Extremely fast diffing algorithm for the most complex of apps.
- Runs natively on mobile and on desktop with no need for a 3rd party JS engine.
- Drastically fewer runtime errors and crashes with first-class error handling.
- Extremely powerful iterator and optional chaining integration for fast and robust apps.
- The most ergonomic and powerful state management of any Rust UI toolkit.
## Get Started with...
<table style="width:100%" align="center">