Description
Seed is a front-end Rust framework for creating fast and reliable web apps with an elm-like architecture.
Seed alternatives and similar packages
Based on the "Client-side / WASM" category.
Alternatively, view Seed alternatives based on common mentions on social networks and blogs.
WorkOS - The modern identity platform for B2B SaaS
Do you think we are missing an alternative of Seed or a related project?
Popular Comparisons
README
Website | Discord
Seed is a Rust front-end framework for creating fast and reliable web apps with an Elm-like architecture.
- completely written in Rust, including the templating system (e.g.
div!
macro). - built-in state management that is based on the Elm architecture.
- a batteries-included approach with a focus on developer experience.
- clear and extensive documentation for Rust beginners and pros alike.
- WebAssembly.
Why Seed?
Seed allows you to develop the front-end with all the benefits of Rust, meaning speed, safety, and too many more things to count.
The Seed templating system uses a macro syntax that makes Rustaceans feel right at home. This means linting, formatting, and commenting will work, and it's all in Rust. This is opposed to a JSX-like syntax that relies on IDE extensions to improve the developer experience.
Seed has a batteries-included approach. This means less time writing boilerplate and less time installing dependencies.
Why not Seed?
- It's newer. It's harder to find support outside of Discord.
- WebAssembly is newer with less support. Browser compatibility is at 92.9%.
- Pre-built components are rare. You will likely have to roll your own components such as date pickers.
- No server-side rendering yet #232.
- You may prefer other Rust frameworks like MoonZoon or Yew.
Getting Started
To get started right away, we can use the quickstart template:
cargo install cargo-generate
cargo install trunk
cargo install wasm-bindgen-cli
cargo generate --git https://github.com/seed-rs/seed-quickstart.git --name seed-quickstart
cd seed-quickstart
trunk serve
If you get an error about wasm being linked against a different version of wasm-bindgen
, just follow the suggestion to run cargo update -p wasm-bindgen
. This will fix the linkings.
You should now see a working counter app in your browser at localhost:8080
.
Getting into Seed
The Seed website and the library docs are the best way to learn about the functionalities of Seed.
The [Seed examples](examples/) are another good resource.
Trunk is the recommended application bundler for Seed. Seed projects are typically run with trunk serve
instead of cargo run
. You might also see cargo make start project_name
in the examples. Going forward, we recommend using Trunk.
Seed Styles is a styling library for Seed to create global and scoped styles.
To use web APIs, there is web-sys which is a part of the wasm-bindgen project. wasm-bindgen is a dependency of Seed.
There are also two template repositories. However, they are not currently up to date.
FAQ
How stable is Seed?
As a framework, Seed is mostly feature-complete. You can build complete web apps in Seed. Projects built in Seed do use Rust stable
. Being in Rust, it's easy to create robust, predictable programs.
What's next for Seed?
Check out the roadmap.
Documentation
- Guides can be found at seed-rs.org
- API documentation can be found at docs.rs/seed
Resources
Seed
- Awesome-seed-rs: A curated list of resources
- Seed Realworld: A detailed realworld example (outdated but still helpful)
- Engineering Rust Web Applications: A book describing full-stack Rust web development using Seed (oudated but still helpful)
Rust
Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md).
Supported By
See [BACKERS.md](BACKERS.md).
This project is supported by: <!-- referral link from console -->
The Seed website is served by Netlify.