A comparison of some web frameworks and libs written in Rust
Rust Nix
Latest commit 45b33b5 Jan 16, 2017 @flosse add blog post

README.md

Rust web framework comparison

A comparison of some web frameworks written in Rust.

Server frameworks

At the moment there are several interesting frameworks to build web applications with Rust:

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

Client frameworks

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

Supplemental libraries

Websocket

Templating

Resources

Blog posts

Demos

Real-world web projects using Rust

JS & asm.js & WASM

Comparison

General

Name iron nickel rocket rustful rustless conduit rouille hyper tiny-http solicit ease jsonrpc websocket ws-rs kinglet pencil sappers hydrogen boron
License MIT MIT MIT / Apache 2.0 MIT MIT MIT Apache 2.0 MIT Apache 2.0 MIT MIT CC0-1.0 MIT MIT MIT BSD-3-Clause MIT MPL 2.0 MIT
Github Stars 3.5k 1.7k 1.3k 0.8k 0.3k 0.1k 0.1k 2.0k 0.2k 0.2k 0.1k 0k 0.2k 0.1k 0.1k 0.8k 0.4k 0.4k 0k
Contributors 67 49 14 11 11 5 4 112 9 8 2 2 16 2 1 4 1 2 2
Server yes yes yes yes yes yes yes yes yes yes no no yes yes yes yes yes yes yes
Client no no no no no no no yes ? yes yes yes yes yes no no no no no
Base framework hyper hyper hyper iron civet tiny-http yes yes yes hyper hyper no no yes hyper hyper yes hyper
HTTPS support yes no yes ? ? ? yes yes - - - - yes - ? ? no no
HTTP/2 support ? ? ? ? ? ? solicit ? yes ? ? - - - ? ? no no

Middleware & Plugins

Name iron nickel conduit rouille rustful rustless pencil sappers
Static File Serving yes yes yes n/a ? ? yes ?
Mounting yes yes ? n/a ? ? ? ?
Logging yes no ? n/a ? ? yes ?
JSON-Body-Parsing yes yes ? n/a ? ? ? ?
Sessions yes ? ? n/a ? ? ? ?
Cookies yes ? ? n/a ? ? ? ?
PostgreSQL middleware ? yes ? n/a ? ? ? ?
SQLite middleware ? yes ? n/a ? ? ? ?
Redis middleware ? yes ? n/a ? ? ? ?
MySQL middleware ? yes ? n/a ? ? ? ?

Examples

To compile or run the examples use Cargo. First clone this repo

git clone https://github.com/flosse/rust-web-framework-comparison
cd rust-web-framework-comparison/

and change to the desired frameworkd directory (e.g. cd iron/) and type

cargo run --example hello_world

Then visit http://localhost:3000 to see the result.