illicit

An implicit thread-local environment which is indexed by type.


Keywords
environment, singleton, global, context, rust, ui, incremental, declarative-ui
Licenses
MIT/Apache-2.0

Documentation

moxie logo

moxie

Crates.io

Hands On

Want to try things out? Check out the development requirements, and run these commands in two terminals:

$ cargo dom-flow

This will build all of the web examples and watch for local changes.

$ cargo server

This will start an HTTP server for the static files in the repo, and opens the repo directory in a browser.

Take a look at .cargo/config for other subcommand aliases used in the project.

About

moxie (/ˈmäksē/) is a lightweight platform-agnostic UI runtime written in Rust, powering a strongly-typed declarative programming style with minimal interaction latency.

moxie is principally inspired by React and more specifically the recent Hooks API. It aims to smoothly bridge the gap between stateless tools like dear imgui and "traditional" UI paradigms with manually managed graphs of stateful, mutable objects. There are many interesting parallels in our design to those of recently announced UI frameworks Jetpack Compose and SwiftUI, although a more in-depth comparison hasn't yet been made. Also, in the course of looking for prior art (ahem googling "memoized imgui"), I found a very interesting thread on LtU discussing various commenters' efforts and curiosities -- it's a fun read.

Contributing and Code of Conduct

See CONTRIBUTING.md for overall contributing info and CONDUCT.md for the project's Code of Conduct. The project is still very early in its lifecycle but we welcome anyone interested in getting involved.

License

Licensed under either of

at your option.