Coder Social home page Coder Social logo

kdy1 / rust-web-framework-comparison Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flosse/rust-web-framework-comparison

0.0 1.0 0.0 319 KB

A comparison of some web frameworks and libs written in Rust

Nix 3.43% Rust 66.97% Shell 5.47% HTML 24.12%

rust-web-framework-comparison's Introduction

Rust web framework comparison

A comparison of some web frameworks written in Rust.

Table of Contents

Server frameworks

There are several interesting frameworks to build web applications with Rust:

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

Frontend frameworks (WASM)

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

Outdated frontend frameworks

Supplemental libraries

Websocket

Templating

Comparison

High-Level Frameworks

Name rocket iron actix-web nickel gotham rouille Thruster jsonrpc tide
License Rocket license Iron license Actix-web license Nickel license Gotham license Rouille license Thruster license Jsonrpc license Tide license
Version Rocket version Iron version Actix-web version Nickel version Gotham version Rouille version Thruster version Jsonrpc version Tide version
Github Stars Rocket stars Iron stars Actix-web stars Nickel stars Gotham stars Rouille stars Thruster stars Jsonrpc stars Tide stars
Contributors Rocket contributors Iron contributors Actix-web contributors Nickel contributors Gotham contributors Rouille contributors Thruster contributors Jsonrpc contributors Tide contributors
Activity Rocket activity Iron activity Actix-web activity Nickel activity Gotham activity Rouille activity Thruster activity Jsonrpc activity Tide activity
Server yes yes yes yes yes yes yes no yes
Client no no yes no no no no yes no
Base framework hyper hyper tokio hyper hyper tiny-http tokio hyper hyper
HTTPS support yes yes no yes ? -
HTTP/2 support ? yes ? no ? ?
Async no yes yes yes yes
Stable Rust no 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

Frontend Frameworks

Name yew stdweb percy dodrio seed draco squark willow smithy
License Yew license Stdweb license Percy license Dodrio license Seed license Draco license Squark license Willow license Smithy license
Version Yew version Stdweb version Percy version Dodrio version Seed version Draco version Squark version no Smithy version
Github Stars Yew stars Stdweb stars Percy stars Dodrio stars Seed stars Draco stars Squark stars Willow stars Smithy stars
Contributors Yew contributors Stdweb contributors Percy contributors Dodrio contributors Seed contributors Draco contributors Squark contributors Willow contributors Smithy contributors
Activity Yew activity Stdweb activity Percy activity Dodrio activity Seed activity Draco activity Squark activity Willow activity Smithy activity
Stable Rust yes yes no ? yes yes no no no
Base framework stdweb - wasm-bindgen wasm-bindgen wasm-bindgen wasm-bindgen wasm-bindgen wasm-bindgen wasm-bindgen
Virtual DOM yes ? yes yes yes yes yes ? yes

Middleware & Plugins

Name iron gotham nickel rouille actix-web
Static File Serving yes no^ yes n/a yes
Mounting yes yes yes n/a yes
Logging yes yes no n/a yes
JSON-Body-Parsing yes yes yes n/a yes
Sessions yes yes ? n/a yes
Cookies yes yes ? n/a yes
PostgreSQL middleware ? no^ yes n/a yes
SQLite middleware ? no^ yes n/a yes
Redis middleware ? no^ yes n/a yes
MySQL middleware ? no^ yes n/a yes

(^ Planned in current roadmap)

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

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.

Resources

Blog posts

2018

Until 2017

Demos

Real-world web projects using Rust

JS & asm.js & WASM

Examples

Benchmark

rust-web-framework-comparison's People

Contributors

adelarsq avatar best-contributor avatar bradleybeddoes avatar ctjhoa avatar defyrlt avatar emosenkis avatar equal-l2 avatar fafhrd91 avatar flosse avatar iugo avatar kocoten1992 avatar limira avatar mapx avatar peng1999 avatar r-52 avatar rap2hpoutre avatar rbalicki2 avatar readmecritic avatar remram44 avatar rofrol avatar rugk avatar sergiobenitez avatar stoivo avatar tatrix avatar tomaka avatar ubnt-intrepid avatar valodim avatar vanadium23 avatar wdhwg001 avatar zzeroo avatar

Watchers

 avatar

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.