Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seed-rs/seed
A Rust framework for creating web apps
https://github.com/seed-rs/seed
frontend-framework rust wasm wasm-bindgen web-framework webassembly
Last synced: 21 days ago
JSON representation
A Rust framework for creating web apps
- Host: GitHub
- URL: https://github.com/seed-rs/seed
- Owner: seed-rs
- License: mit
- Created: 2018-12-01T15:20:42.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-09-03T12:54:53.000Z (about 1 year ago)
- Last Synced: 2024-05-01T23:24:09.699Z (6 months ago)
- Topics: frontend-framework, rust, wasm, wasm-bindgen, web-framework, webassembly
- Language: Rust
- Homepage: https://seed-rs.org
- Size: 10.1 MB
- Stars: 3,788
- Watchers: 48
- Forks: 159
- Open Issues: 54
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust-cn - seed - A Rust framework for creating web apps [![Build Status](https://api.travis-ci.org/David-OConnor/seed.svg?branch=master)](https://travis-ci.org/David-OConnor/seed) (Libraries / Web programming)
- awesome-rust - seed
- awesome - seed-rs/seed - A Rust framework for creating web apps (Rust)
- awesome-seed-rs - GitHub repo
- awesome-yew - Seed - A Rust framework for creating web apps. (Alternatives / Frameworks)
- awesome-starred - seed-rs/seed - A Rust framework for creating web apps (rust)
README
[![crates.io version](https://img.shields.io/crates/v/seed.svg)](https://crates.io/crates/seed)
[![crates.io downloads](https://img.shields.io/crates/d/seed.svg)](https://crates.io/crates/seed)
[![docs.rs](https://docs.rs/seed/badge.svg)](https://docs.rs/seed)
### [Website](https://seed-rs.org) | [Discord](https://discord.gg/JHHcHp5)
---
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.
- 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.## Why not Seed?
- It's not maintained at the moment.
- WebAssembly is newer with less support. [Browser compatibility is at 95.5%](https://caniuse.com/?search=webassembly).
- Pre-built components are rare. You will likely have to roll your own components such as date pickers.
- No server-side rendering yet [#232](https://github.com/seed-rs/seed/issues/232).
- You may prefer [other Rust frameworks](https://github.com/flosse/rust-web-framework-comparison#frontend-frameworks-wasm)## Getting Started
To get started right away, we can use the quickstart template:
```sh
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](https://seed-rs.org/) and the [library docs](https://docs.rs/seed/latest) are the best way to learn about the functionalities of Seed.
The [Seed examples](examples/) are another good resource.
[Trunk](https://github.com/thedodd/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](https://github.com/seed-rs/styles_hooks) is a styling library for Seed to create global and scoped styles.
To use web APIs, there is [`web-sys`](https://github.com/rustwasm/wasm-bindgen/tree/master/crates/web-sys)
which is a part of the [`wasm-bindgen`](https://github.com/rustwasm/wasm-bindgen) project. `wasm-bindgen` is a dependency of Seed.There are also two template repositories. However, they are not currently up to date.
- [Quickstart](https://github.com/seed-rs/seed-quickstart)
- [Webpack quickstart](https://github.com/seed-rs/seed-quickstart-webpack)## 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?
Seed is not maintained at the moment
but if you want to see some features and bring a budget, feel free to contact us.## Documentation
- Guides can be found at [seed-rs.org](https://seed-rs.org)
- API documentation can be found at [docs.rs/seed](https://docs.rs/seed)## Resources
- [Awesome-seed-rs](https://github.com/seed-rs/awesome-seed-rs): A curated list of resources
- [Seed Realworld](https://github.com/seed-rs/seed-rs-realworld): A detailed realworld example (outdated but still helpful)
- [Engineering Rust Web Applications](https://erwabook.com/intro/): A book describing full-stack Rust web development using Seed (oudated but still helpful)## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md).
## Supported By
See [BACKERS.md](BACKERS.md).