moxie logo


repo | xplat | web | related | chat

a lightweight platform-agnostic interactive runtime, written in rust, aiming to empower anyone to build efficient and robust interactive software for humans.


license badge

the repo and chat are covered by an actively enforced code of conduct.

platform-agnostic crates

moxie moxie main branch docs badge moxie docs badge moxie version badge

offers incremental caching & memoization in interactive event loops without bringing platform dependencies.

the cache also holds mutable state variables whose updates wake the runtime to update the presented interface, allowing an interface's code to run only when meaningful updates are observed.

state variables handle events & callbacks and as such are also a natural interface between loading arbitrary futures and user-defined presentation logic. moxie integrates with any async runtime that can spawn local tasks.

mox mox main branch docs badge mox docs badge mox version badge

a Mockery Of XML: nested builder pattern instantiation using XML-lite syntax.

topo topo main branch docs badge topo docs badge topo version badge

create trees of stable identifiers for repeated nested function invocations. allows later calls to "rendezvous" with the results of previous calls at the same location in the tree.

dyn-cache dyn-cache main branch docs badge dyn-cache docs badge dyn-cache version badge

caches for storing arbitrary values and memoizing arbitrary Rust functions.

illicit illicit main branch docs badge illicit docs badge illicit version badge

thread-local implicit nested context singletons, indexed by type

web crates

moxie-dom moxie-dom main branch docs badge moxie-dom docs badge moxie-dom version badge

a strongly-typed, WebAssembly-compatible library for incrementally describing the web's DOM using moxie. supports server-side rendering using augdom's HTML DOM emulation.

(toy) examples

augdom augdom main branch docs badge augdom docs badge augdom version badge

provides an "augmented DOM" implementation that can run almost anywhere Rust can. compiles as either a thin wrapper around web-sys or a DOM emulation layer written in pure Rust which can be used for testing or to render HTML strings.

raf raf main branch docs badge raf docs badge raf version badge

runs an event loop in the browser using requestAnimationFrame


from the repo: "Warning: This is a work in progress and not yet usable for nontrivial applications."

a "webrender-based UI framework with a moxie frontend" which features a "relatively small footprint" and is "targeted towards real world desktop applications."