sindreij/willow
Implementation of the Elm architecture in Rust
{ "createdAt": "2018-10-28T21:10:36Z", "defaultBranch": "master", "description": "Implementation of the Elm architecture in Rust", "fullName": "sindreij/willow", "homepage": "", "language": "Rust", "name": "willow", "pushedAt": "2022-12-10T04:00:57Z", "stargazersCount": 171, "topics": [], "updatedAt": "2025-08-26T01:29:37Z", "url": "https://github.com/sindreij/willow"}This is a tech-demo. Feel free to learn from it and steal the ideas (if you like them), but it’s not something that should (or can) be used directly
Willow
Section titled “Willow”Willow is an experiment to see if it is possible to create a “elm-like” API using Rust.
Demo / Examples
Section titled “Demo / Examples”- Counter [source code]!(examples/counter/src/app.rs). Demo
- TodoMVC [source code]!(examples/todomvc/src/app.rs). Demo
Quickstart
Section titled “Quickstart”cd examples/counter/
# See https://github.com/rustwasm/wasm-pack/issues/252ln -s ../../target targetcargo install wasm-packwasm-pack build
cd www/yarnyarn startBackstory
Section titled “Backstory”See my blogpost for the how and why I built this.
License
Section titled “License”Licensed under either of these:
- Apache License, Version 2.0, ([LICENSE-APACHE]!(LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT]!(LICENSE-MIT) or https://opensource.org/licenses/MIT)
Contributing
Section titled “Contributing”Unless you explicitly state otherwise, any contribution you intentionally submit for inclusion in the work, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.