Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

Awesome Lists containing this project

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).