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 aKey
wrapper with shorthand for mutating methods.wasm-bindgen
cargo feature which enables correct usage of parking_lot on wasm32 targets.
- Some new clippy lints.
- No longer requires a nightly cargo to build.
- Support borrowed arguments to cache functions to avoid cloning on every revision.
- Common trait implementations for
Key
. - Updated crate & module docs.
- Testing utilities in
testing
module.
- Futures loading is no longer feature flagged.
- moxie's cache (previously MemoStorage) is moved to dyn-cache, a new dependency.
- Built-in executor which was only used for testing.
- No longer depends on nightly Rust for
#[track_caller]
-- it's stabilized. mox!
macro is now published separately.
- "Memoization" renamed to "caching" in all APIs.
Runtime::run_once
allows passing an argument to the root function.Runtime
no longer owns the root function.embed
module renamed toruntime
.- State functions return a tuple
(Commit, Key)
instead of just aKey
.
- Incorrect version numbers which prevented 0.2.2 from working from crates.io.
- Depends on nightly Rust for
#[track_caller]
feature.
- Update to topo version that produces functions instead of macros from
#[topo::nested]
. No more macros! Makes use of#[track_caller]
.
- Async executor integration w/ futures loading (
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.
- Attempts at memoizing all components.
- Unnecessary revision bookkeeping for state variables.
- Passing illicit env values to a root function.
Initial release in support of moxie-dom.
Initial name reservation.