https://github.com/flosse/rust-web-framework-comparison
A comparison of some web frameworks and libs written in Rust
https://github.com/flosse/rust-web-framework-comparison
blogs comparison framework libraries rust web
Last synced: 5 days ago
JSON representation
A comparison of some web frameworks and libs written in Rust
- Host: GitHub
- URL: https://github.com/flosse/rust-web-framework-comparison
- Owner: flosse
- Created: 2015-08-16T11:42:44.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2025-03-19T08:11:18.000Z (26 days ago)
- Last Synced: 2025-04-02T17:17:02.330Z (12 days ago)
- Topics: blogs, comparison, framework, libraries, rust, web
- Language: Rust
- Homepage:
- Size: 396 KB
- Stars: 5,359
- Watchers: 165
- Forks: 209
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-ccamel - flosse/rust-web-framework-comparison - A comparison of some web frameworks and libs written in Rust (Rust)
- awesome-rust-cn - Rust web framework comparison
- awesome-list - rust-web-framework-comparison
- StarryDivineSky - flosse/rust-web-framework-comparison
- awesome-starred - flosse/rust-web-framework-comparison - A comparison of some web frameworks and libs written in Rust (framework)
README
# Rust web framework comparison
A comparison of some web frameworks written in [Rust](https://www.rust-lang.org).
This overview only contains frameworks that work on stable Rust.
## Table of Contents
- [Frontend frameworks (WASM)](#frontend-frameworks-wasm)
- [Outdated frontend frameworks](#outdated-frontend-frameworks)
- [Server frameworks](#server-frameworks)
- [High-Level Server Frameworks](#high-level-server-frameworks)
- [Low-Level Frameworks](#low-level-frameworks)
- [Outdated server frameworks](#outdated-server-frameworks)
- [Client frameworks](#client-frameworks)
- [Outdated client frameworks](#outdated-client-frameworks)
- [Templating](#templating)
- [Websocket Libraries](#websocket-libraries)## Frontend frameworks (WASM)
Since [WASM](http://webassembly.org/) support is available in most browsers we can use Rust to build web applications :)
| Name | Stars | Contributors | Activity | Downloads | Virtual DOM | SSR | Rendering | Architecture | Repo | Docs | License | Version |
|----------------------------------------------------------|--------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|-----------|-------------|-----|-----------|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------|
| **[Dioxus](https://dioxuslabs.com/)** |  |  |  | 388.6k | yes | yes | HTML | [React/Redux](https://medium.com/mofed/react-redux-architecture-overview-7b3e52004b6e) | [](https://github.com/dioxuslabs/dioxus) | [](https://docs.rs/dioxus/) |  |  |
| **[dominator](https://github.com/Pauan/rust-dominator)** |  |  |  | 178.5k | no | no | HTML | [FRP](https://en.wikipedia.org/wiki/Functional_reactive_programming) | [](https://github.com/Pauan/rust-dominator) | [](https://docs.rs/dominator/) |  |  |
| **[egui](https://www.egui.rs/)** |  |  |  | 4451.0k | no | no | Canvas | [ImGUI](https://en.wikipedia.org/wiki/Immediate_mode_GUI) | [](https://github.com/emilk/egui) | [](https://docs.rs/egui/) |  |  |
| **[Leptos](https://github.com/gbj/leptos)** |  |  |  | 933.7k | no | yes | HTML | [FRP](https://en.wikipedia.org/wiki/Functional_reactive_programming) | [](https://github.com/gbj/leptos) | [](https://docs.rs/leptos/) |  |  |
| **[sauron](https://github.com/ivanceras/sauron)** |  |  |  | 333.5k | yes | yes | HTML | [TEA](https://guide.elm-lang.org/architecture/) | [](https://github.com/ivanceras/sauron) | [](https://docs.rs/sauron/) |  |  |
| **[Silkenweb](https://github.com/silkenweb/silkenweb)** |  |  |  | 10.6k | no | yes | HTML | [FRP](https://en.wikipedia.org/wiki/Functional_reactive_programming) | [](https://github.com/silkenweb/silkenweb) | [](https://docs.rs/silkenweb/) |  |  |
| **[Sycamore](https://sycamore-rs.netlify.app/)** |  |  |  | 171.1k | no | yes | HTML | [FRP](https://en.wikipedia.org/wiki/Functional_reactive_programming) | [](https://github.com/sycamore-rs/sycamore) | [](https://docs.rs/sycamore/) |  |  |
| **[Vizia](https://github.com/vizia/vizia)** |  |  |  | 2.4k | no | no | Canvas | | [](https://github.com/vizia/vizia) | [](https://docs.rs/vizia/) |  |  |### Outdated frontend frameworks
| Name | Stars | Contributors | Activity | Downloads | Virtual DOM | SSR | Rendering | Architecture | Repo | Docs | License | Version |
|------------------------------------------------------|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|-----------|-------------|-----|-----------|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|---------------------------------------------------------------------------|
| **[dodrio](https://github.com/fitzgen/dodrio)** |  |  |  | 153.6k | | | | | [](https://github.com/fitzgen/dodrio) | [](https://docs.rs/dodrio/) |  |  |
| **[draco](https://github.com/utkarshkukreti/draco)** |  |  |  | - | | | | | [](https://github.com/utkarshkukreti/draco) | | | |
| **[dumle](https://github.com/axelf4/dumle)** |  |  |  | - | | | | | [](https://github.com/axelf4/dumle) | | | |
| **[frender](https://frender-rs.github.io/frender/)** |  |  |  | 4.3k | yes | no | | | [](https://github.com/frender-rs/frender) | [](https://docs.rs/frender/) |  |  |
| **[Iced](https://iced.rs/)** |  |  |  | 725.3k | no | no | Canvas | [TEA](https://guide.elm-lang.org/architecture/) | [](https://github.com/iced-rs/iced) | [](https://docs.rs/iced/) |  |  |
| **[Kobold](https://github.com/maciejhirsz/kobold)** |  |  |  | 12.0k | no | | HTML | [React/Redux](https://medium.com/mofed/react-redux-architecture-overview-7b3e52004b6e) | [](https://github.com/maciejhirsz/kobold) | [](https://docs.rs/kobold/) |  |  |
| **[mika](https://gitlab.com/limira-rs/mika)** | | | | 1.3k | | | | | [](https://gitlab.com/limira-rs/mika) | [](https://docs.rs/mika/) |  |  |
| **[mogwai](https://github.com/schell/mogwai)** |  |  |  | 36.7k | no | yes | HTML | | [](https://github.com/schell/mogwai) | [](https://docs.rs/mogwai/) |  |  |
| **[MoonZoon](http://moonzoon.rs/)** |  |  |  | - | no | no | HTML | [FRP](https://en.wikipedia.org/wiki/Functional_reactive_programming) | [](https://github.com/MoonZoon/MoonZoon) | | | |
| **[percy](https://chinedufn.github.io/percy/)** |  |  |  | - | yes | yes | HTML | | [](https://github.com/chinedufn/percy) | | | |
| **[ruukh](https://github.com/csharad/ruukh)** |  |  |  | - | | | | | [](https://github.com/csharad/ruukh) | | | |
| **[Seed](http://seed-rs.org/)** |  |  |  | 332.0k | yes | no | HTML | [TEA](https://guide.elm-lang.org/architecture/) | [](https://github.com/seed-rs/seed) | [](https://docs.rs/seed/) |  |  |
| **[smithy](https://www.smithy.rs/)** |  |  |  | 10.2k | | | | | [](https://github.com/rbalicki2/smithy) | [](https://docs.rs/smithy/) |  |  |
| **[spair](https://github.com/aclueless/spair)** |  |  |  | 7.8k | no | no | HTML | | [](https://github.com/aclueless/spair) | [](https://docs.rs/spair/) |  |  |
| **[squark](https://github.com/rail44/squark)** |  |  |  | - | | | | | [](https://github.com/rail44/squark) | | | |
| **[stdweb](https://github.com/koute/stdweb)** |  |  |  | 11615.4k | | | | | [](https://github.com/koute/stdweb) | [](https://docs.rs/stdweb/) |  |  |
| **[willow](https://github.com/sindreij/willow)** |  |  |  | - | | | | | [](https://github.com/sindreij/willow) | | | |
| **[yew](https://yew.rs/)** |  |  |  | 1535.2k | yes | yes | HTML | [React/Redux](https://medium.com/mofed/react-redux-architecture-overview-7b3e52004b6e) | [](https://github.com/yewstack/yew) | [](https://docs.rs/Yew/) |  |  |## Server frameworks
### High-Level Server Frameworks
| Name | Stars | Contributors | Activity | Repo | Docs | License | Version | Async | HTTPS | HTTP/2 | Base | Client |
|---------------------------------------------------|-------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-------|-------|--------|------------------|--------|
| **[actix-web](https://actix.rs/)** |  |  |  | [](https://github.com/actix/actix-web) | [](https://docs.rs/actix-web/) |  |  | yes | yes | yes | tokio | no |
| **[axum](https://github.com/tokio-rs/axum)** |  |  |  | [](https://github.com/tokio-rs/axum) | [](https://docs.rs/axum/) |  |  | yes | yes | yes | hyper | no |
| **[loco](https://github.com/loco-rs/loco)** |  |  |  | [](https://github.com/loco-rs/loco) | [](https://docs.rs/loco-rs/) |  |  | yes | yes | yes | tokio | no |
| **[Ohkami](https://github.com/ohkami-rs/ohkami)** |  |  |  | [](https://github.com/ohkami-rs/ohkami) | [](https://docs.rs/ohkami/) |  |  | yes | | | various runtimes | no |
| **[Poem](https://github.com/poem-web/poem)** |  |  |  | [](https://github.com/poem-web/poem) | [](https://docs.rs/poem/) |  |  | yes | yes | yes | hyper | no |
| **[rocket](https://rocket.rs/)** |  |  |  | [](https://github.com/SergioBenitez/rocket) | [](https://docs.rs/rocket/) |  |  | yes | yes | yes | hyper | no |
| **[salvo](https://github.com/salvo-rs/salvo)** |  |  |  | [](https://github.com/salvo-rs/salvo) | [](https://docs.rs/salvo/) |  |  | yes | yes | yes | hyper | no |
| **[trillium](https://trillium.rs/)** |  |  |  | [](https://github.com/trillium-rs/trillium) | [](https://docs.rs/trillium/) |  |  | yes | yes | no | tokio | no |
| **[Viz](https://viz.rs/)** |  |  |  | [](https://github.com/viz-rs/viz) | [](https://docs.rs/viz/) |  |  | yes | yes | yes | hyper | no |
| **[wtx](https://c410-f3r.github.io/wtx/)** |  |  |  | [](https://github.com/c410-f3r/wtx) | [](https://docs.rs/wtx/) |  |  | yes | yes | yes | wtx | yes |
| **[zino](https://github.com/photino/zino)** |  |  |  | [](https://github.com/photino/zino) | [](https://docs.rs/zino/) |  |  | yes | | | | |### Low-Level Frameworks
| Name | Stars | Contributors | Activity | Repo | Docs | License | Version | Async | HTTPS | HTTP/2 | Base | Client |
|-----------------------------------------------------------------------------|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------|-------|-------|--------|------|--------|
| **[actix-http](https://github.com/actix/actix-web/tree/master/actix-http)** |  |  |  | [](https://github.com/actix/actix-web) | [](https://docs.rs/actix-http/) |  |  | yes | yes | yes | | yes |
| **[hyper](http://hyper.rs/)** |  |  |  | [](https://github.com/hyperium/hyper) | [](https://docs.rs/hyper/) |  |  | yes | yes | yes | | yes |
| **[xitca-web](https://github.com/HFQR/xitca-web)** |  |  |  | [](https://github.com/HFQR/xitca-web) | | | | yes | | | | |### Outdated server frameworks
| Name | Stars | Contributors | Activity | Repo | Docs | License | Version | Async | HTTPS | HTTP/2 | Base | Client |
|----------------------------------------------------------------|--------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|-------|-------|--------|------------------|--------|
| **[cargonaouts](https://github.com/cargonauts-rs/cargonauts)** |  |  |  | [](https://github.com/cargonauts-rs/cargonauts) | [](https://docs.rs/cargonaouts/) |  |  | | | | | |
| **[civet](https://github.com/wycats/rust-civet)** |  |  |  | [](https://github.com/wycats/rust-civet) | [](https://docs.rs/civet/) |  |  | | | | | |
| **[conduit](https://github.com/conduit-rust/conduit)** |  |  |  | [](https://github.com/conduit-rust/conduit) | [](https://docs.rs/conduit/) |  |  | | | | | |
| **[gotham](http://gotham.rs/)** |  |  |  | [](https://github.com/gotham-rs/gotham) | [](https://docs.rs/gotham/) |  |  | yes | yes | no | hyper | no |
| **[graphul](https://graphul-rs.github.io/)** |  |  |  | [](https://github.com/graphul-rs/graphul) | [](https://docs.rs/graphul/) |  |  | yes | yes | yes | hyper | no |
| **[hydrogen](https://github.com/nathansizemore/hydrogen)** |  |  |  | [](https://github.com/nathansizemore/hydrogen) | [](https://docs.rs/hydrogen/) |  |  | | | | | |
| **[iron](https://github.com/iron/iron)** |  |  |  | [](https://github.com/iron/iron) | [](https://docs.rs/iron/) |  |  | | | | | |
| **[kinglet](https://github.com/pyfisch/kinglet)** |  |  |  | [](https://github.com/pyfisch/kinglet) | [](https://docs.rs/kinglet/) |  |  | | | | | |
| **[nickel](https://github.com/nickel-org/nickel.rs)** |  |  |  | [](https://github.com/nickel-org/nickel.rs) | [](https://docs.rs/nickel/) |  |  | | | | | |
| **[rouille](https://github.com/tomaka/rouille)** |  |  |  | [](https://github.com/tomaka/rouille) | [](https://docs.rs/rouille/) |  |  | no | yes | | | no |
| **[rustful](https://github.com/Ogeon/rustful)** |  |  |  | [](https://github.com/Ogeon/rustful) | [](https://docs.rs/rustful/) |  |  | | | | | |
| **[rustless](https://github.com/rustless/rustless)** |  |  |  | [](https://github.com/rustless/rustless) | [](https://docs.rs/rustless/) |  |  | | | | | |
| **[sappers](https://github.com/sappworks/sapper)** |  |  |  | [](https://github.com/sappworks/sapper) | [](https://docs.rs/sappers/) |  |  | | | | | |
| **[shio](https://github.com/mehcode/shio-rs)** |  |  |  | [](https://github.com/mehcode/shio-rs) | [](https://docs.rs/shio/) |  |  | | | | | |
| **[solicit](https://github.com/mlalic/solicit)** |  |  |  | [](https://github.com/mlalic/solicit) | [](https://docs.rs/solicit/) |  |  | | | | | |
| **[Thruster](https://github.com/trezm/Thruster)** |  |  |  | [](https://github.com/trezm/Thruster) | [](https://docs.rs/thruster/) |  |  | yes | yes | yes | tokio (or hyper) | no |
| **[Tide](https://github.com/rustasync/tide)** |  |  |  | [](https://github.com/rustasync/tide) | [](https://docs.rs/tide/) |  |  | yes | yes | no | async-std | no |
| **[tiny-http](https://github.com/tiny-http/tiny-http)** |  |  |  | [](https://github.com/tiny-http/tiny-http) | [](https://docs.rs/tiny_http/) |  |  | no | yes | no | | no |
| **[tk-http](https://github.com/swindon-rs/tk-http)** |  |  |  | [](https://github.com/swindon-rs/tk-http) | [](https://docs.rs/tk-http/) |  |  | | | | | |
| **[tower-web](https://github.com/carllerche/tower-web)** |  |  |  | [](https://github.com/carllerche/tower-web) | [](https://docs.rs/tower-web/) |  |  | | | | | |
| **[warp](https://github.com/seanmonstar/warp)** |  |  |  | [](https://github.com/seanmonstar/warp) | [](https://docs.rs/warp/) |  |  | yes | yes | yes | hyper | no |## Client frameworks
To build web clients with Rust, you can choose between these libraries:
- **reqwest** (- / [repository](https://github.com/seanmonstar/reqwest) / [documentation](https://docs.rs/reqwest))
- **awc** (- / [repository](https://github.com/actix/actix-web/tree/master/awc) / [api docs](https://docs.rs/awc))
- **hyper** ([homepage](http://hyper.rs/) / [repository](https://github.com/hyperium/hyper) / [documentation](http://hyper.rs/hyper/hyper/))
- **jsonrpc** (- / [repository](https://github.com/apoelstra/rust-jsonrpc/ ) / [documentation](https://www.wpsoftware.net/rustdoc/jsonrpc/))### Outdated client frameworks
- [ease](https://github.com/SimonPersson/ease)
## Templating
| Name | Repo | Docs | License | Version | Stars | Contributors | Activity |
|--------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
| **[askama](https://github.com/djc/askama)** | [](https://github.com/djc/askama) | [](https://docs.rs/askama/) |  |  |  |  |  |
| **[handlebars](https://github.com/sunng87/handlebars-rust)** | [](https://github.com/sunng87/handlebars-rust) | [](https://docs.rs/handlebars/) |  |  |  |  |  |
| **[liquid](https://github.com/cobalt-org/liquid-rust)** | [](https://github.com/cobalt-org/liquid-rust) | | | |  |  |  |
| **[maud](https://lfairy.gitbooks.io/maud/content)** | [](https://github.com/lfairy/maud) | [](https://docs.rs/maud/) |  |  |  |  |  |
| **[minijinja](https://github.com/mitsuhiko/minijinja)** | [](https://github.com/mitsuhiko/minijinja) | [](https://docs.rs/minijinja/) |  |  |  |  |  |
| **[rinja](https://github.com/rinja-rs/rinja)** | [](https://github.com/rinja-rs/rinja) | [](https://docs.rs/rinja/) |  |  |  |  |  |
| **[ructe](https://github.com/kaj/ructe)** | [](https://github.com/kaj/ructe) | [](https://docs.rs/ructe/) |  |  |  |  |  |
| **[sailfish](https://sailfish.netlify.app/)** | [](https://github.com/Kogia-sima/sailfish) | [](https://docs.rs/sailfish/) |  |  |  |  |  |
| **[srtemplate](https://sergioribera.github.io/srtemplate)** | [](https://github.com/SergioRibera/srtemplate) | [](https://docs.rs/srtemplate/) |  |  |  |  |  |
| **[tera](https://keats.github.io/tera/)** | [](https://github.com/Keats/tera) | [](https://docs.rs/tera/) |  |  |  |  |  |### Outdated templating libraries
| Name | Repo | Docs | License | Version | Stars | Contributors | Activity |
|--------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
| **[horrorshow](https://github.com/Stebalien/horrorshow-rs)** | [](https://github.com/Stebalien/horrorshow-rs) | [](https://docs.rs/horrorshow/) |  |  |  |  |  |
| **[markup](https://github.com/utkarshkukreti/markup.rs)** | [](https://github.com/utkarshkukreti/markup.rs) | [](https://docs.rs/markup/) |  |  |  |  |  |
| **[mustache](https://github.com/nickel-org/rust-mustache)** | [](https://github.com/nickel-org/rust-mustache) | [](https://docs.rs/mustache/) |  |  |  |  |  |
| **[stpl](https://github.com/dpc/stpl)** | [](https://github.com/dpc/stpl) | | | |  |  |  |
| **[tinytemplate](https://github.com/bheisler/TinyTemplate)** | [](https://github.com/bheisler/TinyTemplate) | [](https://docs.rs/tinytemplate/) |  |  |  |  |  |
| **[typed-html](https://github.com/bodil/typed-html)** | [](https://github.com/bodil/typed-html) | [](https://docs.rs/typed-html/) |  |  |  |  |  |## Websocket Libraries
| Name | Repo | Docs | License | Version | Stars | Contributors | Activity | Client | Server | Async |
|------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|--------|--------|-------|
| **[actix-web](https://actix.rs/docs/websockets/)** | [](https://github.com/actix/actix-web) | [](https://docs.rs/actix-web-actors/) |  |  |  |  |  | yes | yes | yes |
| **[mews](https://github.com/ohkami-rs/mews)** | [](https://github.com/ohkami-rs/mews) | [](https://docs.rs/mews/) |  |  |  |  |  | no | yes | yes |
| **[Ohkami](https://github.com/ohkami-rs/ohkami)** | [](https://github.com/ohkami-rs/ohkami) | [](https://docs.rs/ohkami/) |  |  |  |  |  | no | yes | yes |
| **[tokio-tungstenite](https://github.com/snapview/tokio-tungstenite)** | [](https://github.com/snapview/tokio-tungstenite) | [](https://docs.rs/tokio-tungstenite/) |  |  |  |  |  | yes | yes | yes |
| **[tungstenite](https://github.com/snapview/tungstenite-rs)** | [](https://github.com/snapview/tungstenite-rs) | [](https://docs.rs/tungstenite/) |  |  |  |  |  | yes | yes | yes |
| **[ws-rs](https://github.com/housleyjk/ws-rs)** | [](https://github.com/housleyjk/ws-rs) | [](https://docs.rs/ws/) |  |  |  |  |  | yes | yes | yes |
| **[wtx](https://c410-f3r.github.io/wtx/)** | [](https://github.com/c410-f3r/wtx) | [](https://docs.rs/wtx/) |  |  |  |  |  | yes | yes | yes |