A comparison of some web frameworks written in Rust.
This overview only contains framworks that work on stable Rust.
Since WASM support is available in most browsers we can use Rust to build web applications :)
Name | yew | seed | sauron | mogwai | dominator | sycamore |
---|---|---|---|---|---|---|
Repository | ||||||
Documentation | ||||||
License | ||||||
Version | ||||||
Github Stars | ||||||
Contributors | ||||||
Activity | ||||||
Virtual DOM | yes | yes | yes | no | no | no |
SSR | no | no | yes | yes | no | yes |
This overview only contains framworks that support async execution.
- actix-web (homepage / repository / documentation / user guide)
- axum ( / repository / documentation / )
- gotham (homepage / repository / documentation / examples)
- rocket (homepage / repository / documentation)
- Thruster ( - / repository / documentation / examples)
- Tide ( - / repository / documentation / examples)
- warp ( - / repository / documentation / examples)
- salvo ( - / repository / documentation / examples)
- trillium (homepage / repository / documentation / user guide)
Name | hyper | tiny-http |
---|---|---|
License | ||
Version | ||
Github Stars | ||
Contributors | ||
Activity | ||
Server | yes | yes |
Client | yes | no |
HTTPS support | yes | yes |
HTTP/2 support | yes (h2) | no |
Async | yes | no |
If you need a more low level control you can choose between these libraries:
- hyper (homepage / repository / documentation)
- tiny-http ( - / repository) / documentation)
- civet
- conduit
- cargonaouts
- hydrogen
- iron
- kinglet
- nickel
- rouille
- rustless
- rustful
- shio
- sappers
- solicit
- tower-web
- tk-http
To build web clients with Rust, you can choose between these libraries:
- actix-web (homepage / repository / api docs)
- reqwest (- / repository / documentation)
- hyper (homepage / repository / documentation)
- jsonrpc (- / repository / documentation)
- sailfish (homepage / repository / documentation)
- tera (homepage / repository / documentation)
- mustache (- / repository / documentation)
- liquid (- / repository / - )
- handlebars (- / repository / documentation)
- horrorshow (- / repository / documentation)
- maud (homepage / repository / documentation)
- askama (- / repository / documentation )
- stpl (- / repository / - )
- ructe (- / repository / documentation )
- typed-html (- / repository / documentation )
- websocket (homepage / repository / documentation)
- ws-rs (homepage / repository / documentation)
- tungstenite ( - / repository / documentation)
- tokio-tungstenite ( - / repository / documentation)
- actix-web (homepage / repository / documentation)
- Lessons learned on writing web applications completely in Rust
- Introducing Ruukh Framework
- Baby’s First Rust+WebAssembly module: Say hi to JSConf EU!
- Mix Rust Code (WebAssembly) with Vue Component
- Wicked Fast Web Servers in Rust
- Migrating to Actix Web from Rocket for Stability
- Creating a Rusty Rocket fuelled with Diesel
- Dose Response ported to WebAssembly!
- Rust and the case for WebAssembly in 2018
- wasm32-unknown-unknown landed & enabled
- How to Deploy a Rocket Application to Heroku
- Rust to WebAssembly, Made Easy
- Rust for the web
- Rocket on Fedora
- Announcing Gotham - A flexible web framework for stable Rust that does not sacrifice safety, security or speed.
- Announcing cargonauts - A Rust async web framework
- Writing a GitHub webhook with Rust! Part 1: Rocket
- Hello, Botket! (Rocket)
- Launching a URL Shortener in Rust using Rocket
- Rocket + sodiumoxide = ♥
- The Path to Rust on the Web
- Rendering Vector Map Tiles (Rust + asm.js demo)
- Compiling to the web with Rust and emscripten
- Basic 2FA in Rocket
- Building high performance REST APIs with Rust and Rocket
- Rocket Rocks! Using FromFormValue Traits to protect your website
- Building an Asynchronous Hyper Server
- JWT & Access Roles in Rocket
- Writing a basic JSON response web server in Rust using Iron
- Diesel Powered Rocket
- Using Stainless with Rocket
- Integration testing a service written in Rust and Iron
- Actually using Iron: A grumpy introduction to web development in Rust
- Using Rust for Webdev as a Hobby Programmer
- My adventures in Rust webdev
- Rust’s Iron Framework: First impressions
- Rust for Node.js developers
- A Rust-powered public web page in 5 minutes
- Rust and Rest
- Shipping forgettable microservices with Rust
- Writing a simple REST app in Rust
- Getting started with Rust
- Let's Build a Web Server in Rust
- Creating a basic webservice in Rust
- Iron on uWSGI
- Deploying a Rust App to Google App Engine
- async hyper
- Trying Rust for web services
- Are we web yet?
- Reimplementing ashurbanipal.web in Rust
- A web app with Nickel: From first line to Heroku deployment
- What features Iron does not have compared to a web server like nginx?
- Build an API in Rust with JWT Authentication using Nickel.rs
- Selective Middleware for Iron
- Rust for the Web - RESTful API in Rust, impressions
- Rust for Node developers
- exoskeleton - Iron
- Example webapp using React + Webpack - Iron
- rustwebapp - Iron and Postgres (r2d2)
- webrust - Iron and Postgres (r2d2)
- httptest - Iron
- nickel-todo-backend - Nickel and Postgres (r2d2)
- rust-playground - Iron
- rust-web-example - Iron + Diesel (r2d2) + Serde
- websocket chat - Actix: Browser Websocket + tcp chat
- diesel - Actix + Diesel
- json - Actix + serde_json or json_rust
- Lemmy - Actix + Diesel
- paste.rs - Rocket
- realworld-rust-rocket - Rocket + Diesel, medium.com clone example
- Portier - Iron and Redis
- yaus - Iron and SQLite
- racerd - Iron
- rust-passivetotal - Hyper
- mars - Hyper
- openfairdb - Rocket and SQLite (diesel + r2d2)
- ruma - Iron and Posgres (diesel + r2d2)
- html2pdf - Iron
- Hagrid (keys.openpgp.org) - Rocket
- hellorust.com - a website with news, resources and demos
- rust-webapp-template - Template project for Rust web app using stdweb
- rust-todomvc - an example application build with webplatform
- wasm-experiments - experiments with
wasm32-unknown-unknown
- TechEmpower Web Framework Benchmarks
- web-frameworks - Measuring response times (routing times) for each framework (middleware). Each framework has to have two features; routing and parsing path parameters.