Coder Social home page Coder Social logo

rust-web-framework-comparison's Introduction

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 Stars Contributors Activity Downloads Virtual DOM SSR Rendering Architecture Repo Docs License Version
Dioxus Dioxus stars Dioxus contributors Dioxus activity 123.1k yes yes HTML React/Redux Dioxus repo Docs Dioxus license Dioxus version
dominator dominator stars dominator contributors dominator activity 96.1k no no HTML FRP dominator repo Docs dominator license dominator version
egui egui stars egui contributors egui activity 1841.0k no no Canvas ImGUI egui repo Docs egui license egui version
Iced Iced stars Iced contributors Iced activity 391.5k no no Canvas TEA Iced repo Docs Iced license Iced version
Kobold Kobold stars Kobold contributors Kobold activity 1.4k no HTML React/Redux Kobold repo Docs Kobold license Kobold version
Leptos Leptos stars Leptos contributors Leptos activity 240.3k no yes HTML FRP Leptos repo Docs Leptos license Leptos version
MoonZoon MoonZoon stars MoonZoon contributors MoonZoon activity - no no HTML FRP MoonZoon repo
sauron sauron stars sauron contributors sauron activity 124.5k yes yes HTML TEA sauron repo Docs sauron license sauron version
Silkenweb Silkenweb stars Silkenweb contributors Silkenweb activity 1.9k no yes HTML FRP Silkenweb repo Docs Silkenweb license Silkenweb version
Sycamore Sycamore stars Sycamore contributors Sycamore activity 121.1k no yes HTML FRP Sycamore repo Docs Sycamore license Sycamore version
Vizia Vizia stars Vizia contributors Vizia activity 0.6k no no Canvas Vizia repo Docs Vizia license Vizia version
yew yew stars yew contributors yew activity 1000.7k yes yes HTML React/Redux yew repo Docs yew license yew version

Outdated frontend frameworks

Name Stars Contributors Activity Downloads Virtual DOM SSR Rendering Architecture Repo Docs License Version
dodrio dodrio stars dodrio contributors dodrio activity 122.4k dodrio repo Docs dodrio license dodrio version
draco draco stars draco contributors draco activity - draco repo
dumle dumle stars dumle contributors dumle activity - dumle repo
frender frender stars frender contributors frender activity 0.6k yes no frender repo Docs frender license frender version
mika 0.4k Repo Docs mika license mika version
mogwai mogwai stars mogwai contributors mogwai activity 9.8k no yes HTML mogwai repo Docs mogwai license mogwai version
percy percy stars percy contributors percy activity - yes yes HTML percy repo
ruukh ruukh stars ruukh contributors ruukh activity - ruukh repo
Seed Seed stars Seed contributors Seed activity 243.7k yes no HTML TEA Seed repo Docs Seed license Seed version
smithy smithy stars smithy contributors smithy activity 4.6k smithy repo Docs smithy license smithy version
spair spair stars spair contributors spair activity 1.4k no no HTML spair repo Docs spair license spair version
squark squark stars squark contributors squark activity - squark repo
stdweb stdweb stars stdweb contributors stdweb activity 9757.5k stdweb repo Docs stdweb license stdweb version
willow willow stars willow contributors willow activity - willow repo

Server frameworks

High-Level Server Frameworks

Name Stars Contributors Activity Repo Docs License Version Async HTTPS HTTP/2 Base Client
actix-web actix-web stars actix-web contributors actix-web activity actix-web repo Docs actix-web license actix-web version yes yes yes tokio no
axum axum stars axum contributors axum activity axum repo Docs axum license axum version yes yes yes hyper no
graphul graphul stars graphul contributors graphul activity graphul repo Docs graphul license graphul version yes yes yes hyper no
Poem Poem stars Poem contributors Poem activity Poem repo Docs Poem license Poem version yes yes yes hyper no
rocket rocket stars rocket contributors rocket activity rocket repo Docs rocket license rocket version yes yes yes hyper no
rouille rouille stars rouille contributors rouille activity rouille repo Docs rouille license rouille version no yes no
salvo salvo stars salvo contributors salvo activity salvo repo Docs salvo license salvo version yes yes yes hyper no
Thruster Thruster stars Thruster contributors Thruster activity Thruster repo Docs Thruster license Thruster version yes yes yes tokio (or hyper) no
trillium trillium stars trillium contributors trillium activity trillium repo Docs trillium license trillium version yes yes no tokio no
Viz Viz stars Viz contributors Viz activity Viz repo Docs Viz license Viz version yes yes yes hyper no
warp warp stars warp contributors warp activity warp repo Docs warp license warp version yes yes yes hyper no
zino zino stars zino contributors zino activity zino repo Docs zino license zino version yes

Low-Level Frameworks

Name Stars Contributors Activity Repo Docs License Version Async HTTPS HTTP/2 Base Client
actix-http actix-http stars actix-http contributors actix-http activity actix-http repo Docs actix-http license actix-http version yes yes yes yes
hyper hyper stars hyper contributors hyper activity hyper repo Docs hyper license hyper version yes yes yes yes
tiny-http tiny-http stars tiny-http contributors tiny-http activity tiny-http repo Docs tiny-http license tiny-http version no yes no no

Outdated server frameworks

Name Stars Contributors Activity Repo Docs License Version Async HTTPS HTTP/2 Base Client
cargonaouts cargonaouts stars cargonaouts contributors cargonaouts activity cargonaouts repo Docs cargonaouts license cargonaouts version
civet civet stars civet contributors civet activity civet repo Docs civet license civet version
conduit conduit stars conduit contributors conduit activity conduit repo Docs conduit license conduit version
gotham gotham stars gotham contributors gotham activity gotham repo Docs gotham license gotham version yes yes no hyper no
hydrogen hydrogen stars hydrogen contributors hydrogen activity hydrogen repo Docs hydrogen license hydrogen version
iron iron stars iron contributors iron activity iron repo Docs iron license iron version
kinglet kinglet stars kinglet contributors kinglet activity kinglet repo Docs kinglet license kinglet version
nickel nickel stars nickel contributors nickel activity nickel repo Docs nickel license nickel version
rustful rustful stars rustful contributors rustful activity rustful repo Docs rustful license rustful version
rustless rustless stars rustless contributors rustless activity rustless repo Docs rustless license rustless version
sappers sappers stars sappers contributors sappers activity sappers repo Docs sappers license sappers version
shio shio stars shio contributors shio activity shio repo Docs shio license shio version
solicit solicit stars solicit contributors solicit activity solicit repo Docs solicit license solicit version
Tide Tide stars Tide contributors Tide activity Tide repo Docs Tide license Tide version yes yes no async-std no
tk-http tk-http stars tk-http contributors tk-http activity tk-http repo Docs tk-http license tk-http version
tower-web tower-web stars tower-web contributors tower-web activity tower-web repo Docs tower-web license tower-web version

Client frameworks

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

Outdated client frameworks

Supplemental libraries

Templating

Name Repo Docs License Version Stars Contributors Activity
askama askama repo Docs askama license askama version askama stars askama contributors askama activity
handlebars handlebars repo Docs handlebars license handlebars version handlebars stars handlebars contributors handlebars activity
liquid liquid repo liquid stars liquid contributors liquid activity
maud maud repo Docs maud license maud version maud stars maud contributors maud activity
minijinja minijinja repo Docs minijinja license minijinja version minijinja stars minijinja contributors minijinja activity
ructe ructe repo Docs ructe license ructe version ructe stars ructe contributors ructe activity
sailfish sailfish repo Docs sailfish license sailfish version sailfish stars sailfish contributors sailfish activity
tera tera repo Docs tera license tera version tera stars tera contributors tera activity
yew-template yew-template repo Docs yew-template license yew-template version yew-template stars yew-template contributors yew-template activity

Outdated templating libraries

Name Repo Docs License Version Stars Contributors Activity
horrorshow horrorshow repo Docs horrorshow license horrorshow version horrorshow stars horrorshow contributors horrorshow activity
mustache mustache repo Docs mustache license mustache version mustache stars mustache contributors mustache activity
stpl stpl repo stpl stars stpl contributors stpl activity
typed-html typed-html repo Docs typed-html license typed-html version typed-html stars typed-html contributors typed-html activity

Websocket Libraries

Name Repo Docs License Version Stars Contributors Activity Client Server Async
actix-web actix-web repo Docs actix-web license actix-web version actix-web stars actix-web contributors actix-web activity yes yes yes
tokio-tungstenite tokio-tungstenite repo Docs tokio-tungstenite license tokio-tungstenite version tokio-tungstenite stars tokio-tungstenite contributors tokio-tungstenite activity yes yes yes
tungstenite tungstenite repo Docs tungstenite license tungstenite version tungstenite stars tungstenite contributors tungstenite activity yes yes yes
ws-rs ws-rs repo Docs ws-rs license ws-rs version ws-rs stars ws-rs contributors ws-rs activity yes yes yes

rust-web-framework-comparison's People

Contributors

alper avatar bradleybeddoes avatar chrislearn avatar ctjhoa avatar equal-l2 avatar fafhrd91 avatar flosse avatar kocoten1992 avatar limira avatar lukechu10 avatar mubelotix avatar mwcz avatar r-52 avatar rbalicki2 avatar readmecritic avatar remram44 avatar rgreinho avatar robjtede avatar rofrol avatar rugk avatar samuelbonilla avatar sergiobenitez avatar simsmith avatar stoivo avatar tatrix avatar tazjin avatar tomaka avatar varbhat avatar waghanza avatar zymlex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-web-framework-comparison's Issues

Add Gothan example

Gothan is a flexible web framework that does not sacrifice safety, security or speed, based on stable Rust.

Yew also supports web_sys

Awesome list :)
Just a quick note that yew has a feature flag for web_sys and one for stdweb
Cheers!

Outdated and overcomplicated example for Rustful

I noticed that the example for Rustful is a bit outdated and overcomplicated, compared to the other examples. The HandlerFn struct is no longer necessary, since Rust 1.3, and can be completely removed. It's also not really necessary to have a router if only one thing is served (unless you want to restrict requests to /). Handlers implements Router automatically. I'm not sure how minimal they should be, but here is a recent example of a very small server, including error handling.

Everything else looks correct, I think. The only exception would be the ? on "Static File Serving", which technically is correct but may be misleading. There is no middleware for it, but there are a couple of methods for it in Response. This breaks the pattern a bit...

I could send a PR, but there are a couple of uncertainties, as mentioned.

Understanding of the criteria "outdated"?

I'd like to understand by which criteria a framework is judged as "outdated"? It's a loaded classification so I think it is fair to be transparent about the criteria by which the frameworks are evaluated.

Dynamic metrics?

Hi,
Currently the "Comparison" part is static and should be updated manually.
What do you think about using something like https://shields.io/ to get all the data needed?

Example for hyper:
Markdown: ![Hyper license](https://img.shields.io/github/license/hyperium/hyper.svg)
Hyper license
Markdown: ![Hyper stars](https://img.shields.io/github/stars/hyperium/hyper.svg)
Hyper stars

This could avoid maintenance cost but will slow down the loading of the README.
Keep in mind that those results are cached.

I'd be happy to do PRs on that.

rocket is not stale

it is being actively developed(there were some delays to releasing due to some work around getting a legal foundation setup for the project) please move it out of stale!

Rouille is not outdated

The last release 3.3.0 was 12 days ago.

It also seems to be the only framework in the list that is based on tiny-http and is mentioned in the tiny-http crate README.

There are very few non-async web frameworks still going forward these days, so I think it deserves a mention.

date and version

Shouldn't the results include run dates and versions associated with them? These projects are evolving.

Add performance benchmark

Benchmarks can be easily done with the examples that they included in the project source itself.

For most of the frameworks, we could just use (except a few weird crates that name it differently such as hello_world or hello):

git clone git_url
cd git_url
cargo run --example hello-world --release

And then on another terminal:

wrk http://localhost:3000

If we could, we could bump each repository and let them have a standard name hello-world with a standard port to simplifies things in the future. What I learned from benchmarking ~7 different frameworks? I am surprised that actix_web was the fastest even when lower level frameworks (hyper, tokio-tinyhttp, tokio-minihttp) is included and does not have routing.

By the way, it would be great if this was included in http://arewewebyet.org

Add Iced?

Iced is a cross platform gui framework. It targets all major platforms, including web.
Would you consider adding it to the list of front end web clients?
https://github.com/hecrj/iced

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.