moxie 0.2.2

Declarative, asynchronous, incremental UI runtime.
Documentation
<img src="assets/logo.png" alt="moxie logo" width="175"/>

# moxie

![Crates.io](https://img.shields.io/crates/l/moxie.svg)

## Hands On

Want to try things out? Check out 
[the development requirements](CONTRIBUTING.md#development-environment), 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`](.cargo/config) for other subcommand aliases used in the project.

## About

`moxie` (<small>/ˈmäksē/</small>) 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][react] and more specifically the recent [Hooks API][hooks]. It aims to smoothly bridge the gap between stateless tools like [dear imgui][dear] 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][compose] and [SwiftUI][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](http://lambda-the-ultimate.org/node/4561) discussing various commenters' efforts and curiosities -- it's a fun read.

[react]: https://reactjs.org
[hooks]: https://reactjs.org/docs/hooks-intro.html
[dear]: https://github.com/ocornut/imgui
[swiftui]: https://developer.apple.com/xcode/swiftui/
[compose]: https://developer.android.com/jetpack/compose

## Contributing and Code of Conduct

See [CONTRIBUTING.md](CONTRIBUTING.md) for overall contributing info and [CONDUCT.md](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

  * [Apache License, Version 2.0](LICENSE-APACHE)
  * [MIT license](LICENSE-MIT)

at your option.