GithubHelp home page GithubHelp logo

dontlaugh / rocket-yew-starter-pack Goto Github PK

View Code? Open in Web Editor NEW
83.0 1.0 11.0 98 KB

Example boilerplate for websites in pure Rust

License: MIT License

Rust 70.57% HTML 0.83% CSS 24.50% Shell 4.10%
yew example sled rust wasm rocket-rs

rocket-yew-starter-pack's Introduction

Note: this repository is archived. I sketched it out at the time because nothing like it existed and I wanted to scratch an itch. But now Yew has come a really long way, and keeping up with all the changes + maintaining a backend, however minimal, is just not something that interests me anymore. It's irresponsible for me to have this be a "most stars" hit when people search for Yew, when it will usually be busted and out of date. Better stuff exists. Start with the official docs

It can still serve as an example for what I'd consider to be a basic repo layout, but you'll have to rewrite most of the internals.

The front-end rust web development space is still evolving, but has already benefitted from the (frankly incredible) work of so many trailblazers.

The next version of this repo needs to be written by someone new, scratching their own itch. Go do radical shit.

Love, Coleman


Rocket/Yew Starter Pack

Rocket is a framework for building web servers in Rust, with a routing API that feels like Flask (Python). Yew is a front end framework for writing apps in Rust using cutting-edge (but well-supported) WebAssembly technologies, and with an API inspired by patterns from Elm and React.

This project adapts the todoMVC example from the yew repo, and periodically syncs local state with a backend Rocket server.

We also include some scripts to demonstrate building the ui and shipping it over to the server to serve as static assets.

Getting Started

Install rust with rustup. Since we build with --target=wasm32-unknown-unknown, and rely on other unstable features, you must use nightly rust.

rustup default nightly

Build both ui and server on your current platform

./build.sh

Or, build ui and copy the outputs over to server to run locally.

./run-local.sh

Or, build the Rocket server backend as a static binary, using Eric Kidd's Docker container.

./static-binary.sh  # calls server/.container-script.sh

Other Libraries

This project also uses:

  • stdweb and cargo-web - core library and tooling that make frameworks like yew possible. You can support koute on Patreon.
  • maud - html templating
  • sled - an embedded, ordered key-value store
  • bincode - binary encoding for rust types, so we can put stuff in a sled tree

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.