Based on Elementary.
Check out the example app: https://sliemeobn.github.io/elementary-dom/
Developed with a recent snapshot of swift. No WASM/WASI SDK required when built for Embedded (see Examples)
- identity system and list-diffing
lifecycle events and proper "unmounting" (currently node are just "dropped")@State systemtyped event handlers@Environment system- "model-bindings" for inputs (ie: bind a @Binding to a textbox, or bind a @Binding on a check box)
- figure out why
@Environment
with optionalReactiveObject
does not build in embedded - preference system (ie: bubbling up values)
- proper unit testing (once APIs firm up a bit more)
- Browser APIs (Storage, History)
- think about how to deal with the lack of
Codable
in embedded - make printing work without WASI (maybe pipe putchar through to javascript?)
- isolation and @MainActor stuff for reusable types (server-side-rendering and client apps)
- decide whether the current idea of
Views
flattening themselves into renderalbe types is even necessary, or if views should just "apply" themselves into the reconciler - might be a bit messier, but maybe faster and more flexible
- _Concurrency module (Task)
- Synchronization (Mutex)
- Codable (we probably need another way to JSON-ify things)
This package is generally licensed as Apache 2.
The Rectivity
module is inspired by the Swift stdlib's Observation
framework, and code in ReactivityMacros
is directly derived from it (source).
Find a copy of the Swift.org open source project license here.