/rust-web-framework-comparison

A comparison of some web frameworks and libs written in Rust

Rust web framework comparison

A comparison of some web frameworks written in Rust.

Table of Contents

Frontend frameworks (WASM)

Since WASM support is available in most browsers we can use Rust to build web applications :)

Name yew seed percy sauron mogwai dominator maple
Repository Repo Repo Repo Repo Repo Repo Repo
Documentation Docs Docs Docs Docs Docs Docs Docs
License Yew license Seed license Percy license sauron license Mogwai license Dominator license maple license
Version Yew version Seed version Percy version sauron version Mogwai version Dominator version maple version
Github Stars Yew stars Seed stars Percy stars sauron stars Mogwai stars Dominator stars maple stars
Contributors Yew contributors Seed contributors Percy contributors sauron contributors Mogwai contributors Dominator contributors maple contributors
Activity Yew activity Seed activity Percy activity sauron activity Mogwai activity Dominator activity Maple activity
Stable Rust yes yes no yes yes yes yes
Virtual DOM yes yes yes yes no no no
SSR no no yes yes yes no no

Outdated frontend frameworks

Server frameworks

High-Level Server Frameworks

Name rocket warp actix-web gotham Thruster tide salvo
License Rocket license warp license Actix-web license Gotham license Thruster license Tide license Salvo license
Version Rocket version warp version Actix-web version Gotham version Thruster version Tide version Salvo version
Github Stars Rocket stars warp stars Actix-web stars Gotham stars Thruster stars Tide stars Salvo stars
Contributors Rocket contributors warp contributors Actix-web contributors Gotham contributors Thruster contributors Tide contributors Salvo contributors
Activity Rocket activity warp activity Actix-web activity Gotham activity Thruster activity Tide activity Salvo activity
Base framework hyper hyper tokio hyper tokio (or hyper) hyper hyper
HTTPS support yes yes yes yes
HTTP/2 support yes yes no yes yes
Async no yes yes yes yes yes yes
Stable Rust no yes yes yes yes yes

Low-Level Frameworks

Name hyper h2 tiny-http
License Hyper license H2 license Tiny-http license
Version Hyper version H2 version Tiny-http version
Github Stars Hyper stars H2 stars Tiny-http stars
Contributors Hyper contributors H2 contributors Tiny-http contributors
Activity Hyper activity H2 activity Tiny-http activity
Server yes yes yes
Client yes yes ?
HTTPS support yes no yes
HTTP/2 support solicit yes ?
Async yes yes

If you need a more low level control you can choose between these libraries:

Outdated server frameworks

Client frameworks

To build web clients with Rust, you can choose between these libraries:

Outdated client frameworks

Supplemental libraries

Templating

Websocket Libraries

Name websocket ws-rs twist tungstenite actix-web
License Websocket license Ws-rs license Twist license Tungstenite license Actix-web license
Version Websocket version Ws-rs version Twist version Tungstenite version Actix-web version
Github Stars Websocket stars Ws-rs stars Twist stars Tungstenite stars Actix-web stars
Contributors Websocket contributors Ws-rs contributors Twist contributors Tungstenite contributors Actix-web contributors
Activity Websocket activity Ws-rs activity Twist activity Tungstenite activity Actix-web activity
Server yes yes yes yes yes
Client yes yes yes yes yes
Base framework - / tokio mio tokio - / tokio tokio
Async no / yes yes yes no / yes yes

Resources

Blog posts

2018

Until 2017

Demos

Real-world web projects using Rust

JS & asm.js & WASM

Examples

Benchmark