moxie supports incremental "declarative" Rust code for interactive systems. It comes with a lightweight event loop runtime that supports granular reuse of arbitrary work, state change notifications, and async loaders.
Key::mutate
allows naive clone-update-compare access to a state variable.#[moxie::updater(...)]
attribute macro supports creating a Key
wrapper with shorthand for
mutating methods.wasm-bindgen
cargo feature which enables correct usage of parking_lot on wasm32 targets.Key
.testing
module.#[track_caller]
-- it's stabilized.mox!
macro is now published separately.Runtime::run_once
allows passing an argument to the root function.Runtime
no longer owns the root function.embed
module renamed to runtime
.(Commit, Key)
instead of just a Key
.#[track_caller]
feature.#[topo::nested]
. No more
macros! Makes use of #[track_caller]
.load
, load_once
, ...). Under feature flag.#![forbid(unsafe_code)]
Runtime::run_once
returns the root closure's return value.memo_with
, once_with
functions that allows non-Clone
types in storageKey
tracks its callsite.mox!
re-exported.Initial release in support of moxie-dom.
Initial name reservation.