This codebase was created to demonstrate a fully fledged WebAssembly web application built with Yew including CRUD operations, authentication, routing, pagination, and more. It utilizes Yew's latest
function components and
hooks. It also supports desktop application powered by Tauri.
We've gone to great lengths to adhere to the Yew community styleguides & best practices.
For more information on how to this works with other frontends/backends, head over to the RealWorld repo.
How it looks
You can view a live demo over at Demo
How it works
You can view a full list of crates being used in Cargo.toml, but here are some of the main ones of note:
- yew - a modern Rust framework for creating multi-threaded frontend apps with WebAssembly.
- yew-router - a routing library for the Yew framework.
- yew-hooks - Hooks for the Yew web framework, inspired by react hook libs like streamich/react-use and alibaba/hooks.
- lazy_static - a macro for declaring lazily evaluated statics in Rust.
- parking_lot - provides implementations of
- pulldown-cmark - a pull parser for CommonMark, used to parse Markdown.
- serde - a generic serialization/deserialization framework.
- chrono - date and time library for Rust.
You can visit
http://localhost:8000 in your browser now.
cargo install wasm-pack
Install npm packages
npm run install
Build and develop
.env, and you can change the environment variables if you like.
cp .env.example .env npm start
You can visit
http://localhost:8000in your browser now.
Build and release
npm run build
You should find static files at
crates/conduit-wasm/distfolder now, they are hosted in gh-pages branch as a demo.
Install chromedriver, run tests in headless browsers.
Tauri for desktop (optional)With
cargo install tauri-cli --version ^1.0.0-rc
cargo install tauri-cli --git https://github.com/tauri-apps/tauri --branch next
Build and develop for desktop
cargo tauri dev
Build and release for desktop
cargo tauri build
Create Yew App
This project was bootstrapped with Create Yew App, if you want to quickly setup a new Yew web app for your own, you might try Create Yew App, an unofficial tool to set up a modern Yew web app by simply running one command.
npx create-yew-app my-app cd my-app npm start
Feel free to take a look at the current issues in this repo for anything that currently needs to be worked on.
You are also welcome to open a PR or a new issue if you see something is missing or could be improved upon.
Apache License (Version 2.0)
See LICENSE for details