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

This overview only contains frameworks that work on stable 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 sauron mogwai dominator sycamore
Repository Repo Repo Repo Repo Repo Repo
Documentation Docs Docs Docs Docs Docs Docs
License Yew license Seed license sauron license Mogwai license Dominator license Sycamore license
Version Yew version Seed version sauron version Mogwai version Dominator version Sycamore version
Github Stars Yew stars Seed stars sauron stars Mogwai stars Dominator stars Sycamore stars
Contributors Yew contributors Seed contributors sauron contributors Mogwai contributors Dominator contributors Sycamore contributors
Activity Yew activity Seed activity sauron activity Mogwai activity Dominator activity Sycamore activity
Virtual DOM yes yes yes no no no
SSR no no yes yes no yes

Outdated frontend frameworks

Server frameworks

High-Level Server Frameworks

This overview only contains frameworks that support async execution.

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

Low-Level Frameworks

Name hyper tiny-http
License Hyper license Tiny-http license
Version Hyper version Tiny-http version
Github Stars Hyper stars Tiny-http stars
Contributors Hyper contributors Tiny-http contributors
Activity Hyper activity Tiny-http 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:

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