# web-frameworks
**Repository Path**: mirrors_ahopkins/web-frameworks
## Basic Information
- **Project Name**: web-frameworks
- **Description**: Which is the fastest web framework?
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-10-22
- **Last Updated**: 2025-12-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Which is the fastest?
[](https://travis-ci.com/the-benchmarker/web-frameworks)
[](https://gitter.im/which_is_the_fastest/Lobby)
This project aims to be a load benchmarking suite, no more, no less
> Measuring response times (routing times) for each framework (middleware).
:warning::warning::warning::warning::warning::warning::warning::warning:
Results are not production-ready yet
:warning::warning::warning::warning::warning::warning::warning::warning:
### Additional purposes :
+ Helping decide between languages, depending on use case
+ Learning languages, best practices, devops culture ...
+ Having fun :heart:
## Requirements
+ [Crystal](https://crystal-lang.org) as `built-in` tools are made in this language
+ [Docker](https://www.docker.com) as **frameworks** are `isolated` into _containers_
+ [wrk](https://github.com/wg/wrk) as benchmarking tool, `>= 4.1.0`
+ [postgresql](https://www.postgresql.org) to store data, `>= 10`
:information_source::information_source::information_source::information_source::information_source:
:warning: On `OSX` you need `docker-machine` to use `docker` containerization
~~~
brew install docker-machine
docker-machine create default
eval $(docker-machine env default)
~~~
:information_source::information_source::information_source::information_source::information_source:
## Usage
+ Install all dependencies
~~~sh
shards install
~~~
+ Build internal tools
~~~sh
shards build
~~~
+ Create and initialize the database
~~~sh
createdb -U postgres benchmark
psql -U postgres -d benchmark < .ci/dump.sql
~~~
Docker can be used to set up the database:
~~~sh
docker run -it --rm -d \
-p 5432:5432 \
-e POSTGRES_DB=benchmark \
-e POSTGRES_HOST_AUTH_METHOD=trust \
-v /tmp/pg-data:/var/lib/postgresql/data \
--name pg postgres:12-alpine
~~~
Wait several seconds for the container to start, then inject the dump:
~~~sh
docker exec pg sh -c "echo \"$(cat .ci/dump.sql)\" | psql -U postgres -d benchmark"
~~~
After creating the database, export its URL:
~~~sh
export DATABASE_URL="postgresql://postgres@localhost/benchmark"
~~~
+ Make configuration
~~~sh
bin/make config
~~~
+ Build containers
> jobs are either languages (example : crystal) or frameworks (example : router.cr)
~~~sh
bin/neph [job1] [job2] [job3] ...
~~~
+ Export all results readme
~~~sh
bin/db to_readme
~~~
## Results
:information_source: Updated on **2020-05-06** :information_source:
> Benchmarking with [wrk](https://github.com/wg/wrk)
+ Threads : 8
+ Timeout : 8
+ Duration : 15s (seconds)
:information_source: Sorted by max `req/s` on concurrency **64** :information_source:
| | Language | Framework | Speed (64) | Speed (256) | Speed (512) | Speed (1024) | Speed (2048) |
|----|----------|-----------|-----------:|------------:|------------:|-------------:|--------------:|
| 1 | javascript (13.14)| [nanoexpress-pro](https://github.com/nanoexpress/pro) (1.11) | 178 426 | 190 773 | 190 234 | 181 841 | 185 128 |
| 2 | javascript (13.14)| [nanoexpress](https://github.com/nanoexpress/nanoexpress) (2.0) | 176 922 | 188 532 | 188 888 | 185 936 | 185 438 |
| 3 | nim (1.2)| [httpbeast](https://github.com/dom96/httpbeast) (0.2) | 176 627 | 190 639 | 189 619 | 186 275 | 184 491 |
| 4 | php (7.4)| [simps](https://simps.io) (1.0) | 175 713 | 182 925 | 187 455 | 184 420 | 184 385 |
| 5 | java (8)| [jooby](https://jooby.io) (2.8) | 172 723 | 188 517 | 188 758 | 182 875 | 181 547 |
| 6 | javascript (13.14)| [sifrr](https://sifrr.github.io/sifrr/#/./packages/server/sifrr-server/) (0.0) | 170 492 | 180 146 | 183 412 | 182 390 | 182 012 |
| 7 | kotlin (1.3)| [kooby](https://jooby.io) (2.8) | 163 285 | 177 502 | 188 343 | 183 420 | 181 373 |
| 8 | go (1.14)| [fasthttp](https://pkg.go.dev/github.com/valyala/fasthttp) (1.12) | 159 448 | 168 033 | 171 380 | 165 939 | 165 526 |
| 9 | go (1.14)| [fasthttprouter](https://pkg.go.dev/github.com/buaazp/fasthttprouter) (0.1) | 154 859 | 164 221 | 168 491 | 163 701 | 164 131 |
| 10 | go (1.14)| [router](https://pkg.go.dev/github.com/fasthttp/router) (1.0) | 154 527 | 164 415 | 168 520 | 164 642 | 163 577 |
| 11 | crystal (0.34)| [toro](https://github.com/soveran/toro) (0.4) | 154 018 | 160 849 | 157 670 | 149 889 | 148 294 |
| 12 | go (1.14)| [fiber](https://gofiber.io) (1.9) | 153 075 | 156 059 | 154 587 | 146 875 | 145 933 |
| 13 | java (8)| [rapidoid](https://rapidoid.org) (5.5) | 153 046 | 170 419 | 170 046 | 165 036 | 163 471 |
| 14 | go (1.14)| [atreugo](https://github.com/savsgio/atreugo/blob/master/docs/README.md) (11.0) | 152 968 | 161 712 | 164 173 | 160 546 | 160 301 |
| 15 | go (1.14)| [gorouter-fasthttp](https://github.com/vardius/gorouter/wiki) (4.4) | 152 349 | 161 705 | 164 720 | 159 562 | 159 305 |
| 16 | crystal (0.34)| [spider-gazelle](https://spider-gazelle.net) (3.0) | 150 989 | 157 314 | 154 133 | 145 980 | 145 957 |
| 17 | php (7.4)| [workerman](https://github.com/walkor/Workerman) (4.0) | 150 342 | 161 155 | 163 085 | 161 121 | 160 207 |
| 18 | crystal (0.34)| [router.cr](https://github.com/tbrand/router.cr) (0.2) | 149 645 | 156 807 | 153 335 | 145 787 | 143 588 |
| 19 | crystal (0.34)| [kemal](https://kemalcr.com) (0.26) | 142 582 | 148 364 | 145 172 | 137 530 | 137 063 |
| 20 | crystal (0.34)| [grip](https://github.com/grip-framework/grip) (0.28) | 141 349 | 146 567 | 144 206 | 136 000 | 134 644 |
| 21 | nim (1.2)| [jester](https://github.com/dom96/jester) (0.4) | 132 600 | 146 121 | 146 672 | 141 368 | 140 139 |
| 22 | rust (1.43)| [actix](https://actix.rs) (2.0) | 129 977 | 134 668 | 136 066 | 134 104 | 133 899 |
| 23 | crystal (0.34)| [orion](https://github.com/obsidian/orion) (2.3) | 129 617 | 134 603 | 127 922 | 118 986 | 118 429 |
| 24 | crystal (0.34)| [amber](https://amberframework.org) (0.34) | 123 933 | 135 740 | 130 175 | 123 632 | 123 733 |
| 25 | crystal (0.34)| [athena](https://github.com/athena-framework/athena) (0.8) | 121 067 | 127 610 | 120 198 | 112 669 | 111 833 |
| 26 | java (8)| [act](https://actframework.org) (1.8) | 118 526 | 132 969 | 129 166 | 126 720 | 129 264 |
| 27 | go (1.14)| [rte](https://github.com/jwilner/rte) (0.0) | 108 809 | 108 625 | 111 823 | 111 048 | 111 009 |
| 28 | go (1.14)| [httprouter](https://pkg.go.dev/github.com/julienschmidt/httprouter) (1.3) | 107 040 | 107 114 | 109 464 | 109 180 | 109 020 |
| 29 | go (1.14)| [gorouter](https://github.com/vardius/gorouter/wiki) (4.4) | 102 899 | 106 707 | 108 920 | 107 442 | 108 126 |
| 30 | go (1.14)| [chi](https://github.com/go-chi/chi) (4.1) | 102 449 | 101 614 | 104 321 | 103 900 | 103 234 |
| 31 | go (1.14)| [aero](https://github.com/aerogo/aero) (1.3) | 100 486 | 101 455 | 104 528 | 103 510 | 102 930 |
| 32 | go (1.14)| [violetear](https://violetear.org) (7.0) | 99 662 | 99 696 | 102 692 | 103 033 | 102 145 |
| 33 | go (1.14)| [echo](https://echo.labstack.com) (4.1) | 98 689 | 97 267 | 100 364 | 100 283 | 100 010 |
| 34 | go (1.14)| [goroute](https://goroute.github.io) (0.0) | 98 606 | 97 594 | 100 144 | 100 104 | 100 047 |
| 35 | go (1.14)| [kami](https://github.com/guregu/kami) (2.2) | 97 564 | 102 129 | 103 654 | 101 834 | 101 436 |
| 36 | ruby (2.7)| [agoo](https://github.com/ohler55/agoo) (2.12) | 97 252 | 116 518 | 119 255 | 120 301 | 119 552 |
| 37 | go (1.14)| [gin](https://gin-gonic.com) (1.6) | 95 867 | 100 531 | 103 264 | 101 980 | 102 433 |
| 38 | go (1.14)| [gorilla-mux](https://www.gorillatoolkit.org/pkg/mux) (1.7) | 95 377 | 93 981 | 96 602 | 96 832 | 96 837 |
| 39 | go (1.14)| [beego](https://beego.me) (1.12) | 95 366 | 98 601 | 101 701 | 101 340 | 100 956 |
| 40 | csharp (8.0)| [aspnetcore](https://docs.microsoft.com/en-us/aspnet/index) (3.1) | 93 937 | 101 521 | 102 481 | 99 986 | 100 476 |
| 41 | go (1.14)| [webgo](https://github.com/bnkamalesh/webgo) (3.0) | 93 137 | 92 887 | 95 047 | 95 820 | 95 371 |
| 42 | javascript (13.14)| [0http](https://github.com/jkyberneees/0http) (2.3) | 88 654 | 97 419 | 97 222 | 93 761 | 93 135 |
| 43 | javascript (13.14)| [polkadot](https://github.com/lukeed/polkadot) (1.0) | 87 792 | 98 626 | 97 945 | 93 820 | 93 646 |
| 44 | cpp (14/17)| [drogon](https://github.com/an-tao/drogon) (1.0) | 87 175 | 91 917 | 93 279 | 91 576 | 93 025 |
| 45 | c (99)| [kore](https://kore.io) (3.3) | 85 687 | 122 507 | 147 374 | 152 672 | 142 512 |
| 46 | c (11)| [agoo-c](https://github.com/ohler55/agoo-c) (0.7) | 83 436 | 169 641 | 179 684 | 179 261 | 176 406 |
| 47 | go (1.14)| [air](https://github.com/aofei/air) (0.16) | 79 633 | 85 550 | 87 198 | 86 920 | 86 438 |
| 48 | swift (5.2)| [perfect](https://perfect.org) (3.1) | 78 240 | 86 256 | 92 234 | 92 463 | 91 742 |
| 49 | scala (2.13)| [akkahttp](https://akka.io) (10.1) | 77 722 | 85 329 | 83 443 | 83 019 | 81 584 |
| 50 | javascript (13.14)| [restana](https://github.com/jkyberneees/ana) (4.3) | 76 923 | 85 262 | 85 632 | 82 528 | 82 367 |
| 51 | javascript (13.14)| [rayo](https://rayo.js.org) (1.3) | 76 847 | 79 499 | 77 890 | 75 362 | 75 903 |
| 52 | javascript (13.14)| [polka](https://github.com/lukeed/polka) (0.5) | 76 011 | 81 196 | 78 091 | 72 012 | 73 628 |
| 53 | go (1.14)| [gf](https://goframe.org) (1.12) | 75 129 | 80 583 | 81 606 | 81 981 | 81 886 |
| 54 | java (8)| [javalin](https://javalin.io) (3.8) | 70 193 | 78 446 | 79 085 | 78 228 | 78 236 |
| 55 | kotlin (1.3)| [ktor](https://ktor.io) (1.2) | 67 496 | 78 043 | 79 541 | 78 993 | 76 805 |
| 56 | javascript (13.14)| [muneem](https://github.com/node-muneem/muneem) (2.4) | 66 288 | 69 698 | 67 467 | 66 994 | 68 191 |
| 57 | php (7.4)| [hyperf](https://www.hyperf.io) (1.1) | 65 597 | 68 180 | 69 062 | 68 349 | 68 380 |
| 58 | javascript (13.14)| [foxify](https://foxify.js.org) (0.1) | 65 559 | 69 213 | 67 609 | 65 858 | 65 439 |
| 59 | javascript (13.14)| [fastify](https://fastify.io) (2.14) | 65 338 | 68 702 | 65 898 | 64 996 | 64 837 |
| 60 | php (7.4)| [siler-swoole](https://siler.leocavalcante.dev) (1.7) | 64 343 | 74 686 | 79 349 | 78 419 | 77 547 |
| 61 | php (7.4)| [one](https://github.com/lizhichao/one) (2.0) | 64 187 | 65 794 | 67 441 | 66 987 | 66 851 |
| 62 | elixir (1.1)| [cowboy_stream](https://ninenines.eu/docs/en/cowboy/2.7/guide/streams/) (2.7) | 63 130 | 63 521 | 59 909 | 56 460 | 58 538 |
| 63 | java (8)| [spring-boot](https://spring.io/projects/spring-boot) (2.2) | 62 681 | 70 169 | 68 230 | 68 462 | 66 943 |
| 64 | python (3.8)| [falcon](https://falconframework.org) (2.0) | 62 077 | 70 437 | 72 781 | 71 912 | 71 008 |
| 65 | go (1.14)| [mars](https://github.com/roblillack/mars) (1.0) | 60 872 | 64 166 | 66 625 | 66 556 | 66 508 |
| 66 | java (8)| [micronaut](https://micronaut.io) (1.2) | 60 683 | 69 218 | 69 431 | 67 138 | 66 057 |
| 67 | javascript (13.14)| [koa](https://koajs.com) (2.11) | 59 385 | 62 917 | 60 814 | 59 773 | 59 623 |
| 68 | swift (5.2)| [kitura](https://kitura.io) (2.9) | 57 514 | 56 997 | 57 205 | 55 893 | 55 765 |
| 69 | swift (5.2)| [kitura-nio](https://kitura.io) (2.9) | 56 473 | 56 617 | 56 615 | 56 041 | 56 038 |
| 70 | python (3.8)| [bottle](https://bottlepy.org) (0.12) | 55 539 | 61 397 | 61 251 | 59 976 | 60 736 |
| 71 | python (3.8)| [apidaora](https://github.com/dutradda/apidaora) (0.26) | 54 579 | 60 102 | 60 236 | 58 041 | 57 778 |
| 72 | rust (1.43)| [nickel](https://nickel-org.github.io) (0.11) | 53 172 | 53 374 | 53 070 | 52 809 | 53 385 |
| 73 | scala (2.13)| [http4s](https://http4s.org) (0.21) | 52 645 | 55 475 | 53 959 | 52 229 | 51 112 |
| 74 | javascript (13.14)| [iotjs-express](https://github.com/SamsungInternet/iotjs-express) (0.0) | 52 631 | 55 045 | 56 270 | 57 709 | 55 297 |
| 75 | javascript (13.14)| [nestjs-fastify](https://nestjs.com) (7.0) | 52 301 | 58 748 | 57 212 | 56 912 | 56 832 |
| 76 | javascript (13.14)| [feathersjs](https://feathersjs.com) (4.5) | 51 966 | 52 783 | 50 583 | 50 992 | 49 216 |
| 77 | clojure (1.1)| [coast](https://coastonclojure.com) (1.0) | 51 872 | 53 504 | 55 294 | 54 672 | 54 270 |
| 78 | javascript (13.14)| [express](https://expressjs.com) (4.17) | 51 781 | 54 311 | 54 542 | 50 363 | 51 804 |
| 79 | python (3.8)| [asgineer](https://asgineer.readthedocs.io) (0.7) | 51 753 | 57 593 | 57 326 | 55 020 | 54 741 |
| 80 | java (8)| [spring-framework](https://spring.io/projects/spring-framework) (5.2) | 50 970 | 59 644 | 60 738 | 61 363 | 60 870 |
| 81 | swift (5.2)| [vapor](https://vapor.codes) (4.5) | 50 148 | 52 088 | 51 955 | 51 367 | 50 908 |
| 82 | python (3.8)| [blacksheep](https://github.com/RobertoPrevato/BlackSheep) (0.2) | 48 907 | 53 719 | 52 505 | 51 272 | 50 788 |
| 83 | javascript (13.14)| [moleculer](https://moleculer.services) (0.14) | 48 592 | 49 744 | 48 734 | 48 239 | 48 440 |
| 84 | python (3.8)| [pyramid](https://trypyramid.com) (1.1) | 48 415 | 50 778 | 51 090 | 50 481 | 50 411 |
| 85 | cpp (11)| [evhtp](https://criticalstack.com) (1.2) | 46 568 | 46 295 | 46 450 | 46 190 | 45 925 |
| 86 | php (7.4)| [imi](https://imiphp.com) (1.2) | 46 469 | 47 523 | 47 876 | 47 516 | 47 603 |
| 87 | python (3.8)| [hug](https://hug.rest) (2.6) | 44 713 | 47 795 | 47 793 | 47 035 | 46 727 |
| 88 | python (3.8)| [starlette](https://starlette.io) (0.13) | 44 103 | 47 651 | 47 255 | 45 536 | 45 197 |
| 89 | rust (1.43)| [gotham](https://gotham.rs) (0.4) | 42 952 | 48 888 | 50 769 | 52 860 | 54 030 |
| 90 | javascript (13.14)| [hapi](https://hapijs.com) (19.1) | 42 507 | 44 752 | 44 027 | 43 441 | 43 185 |
| 91 | javascript (13.14)| [nestjs-express](https://nestjs.com) (7.0) | 41 719 | 42 881 | 42 185 | 41 597 | 41 755 |
| 92 | elixir (1.1)| [cowboy](https://ninenines.eu/docs/en/cowboy/2.7/guide/) (2.7) | 39 900 | 40 708 | 40 673 | 39 079 | 39 332 |
| 93 | ruby (2.7)| [syro](https://github.com/soveran/syro) (3.2) | 39 742 | 40 723 | 39 316 | 38 472 | 38 545 |
| 94 | ruby (2.7)| [hanami-api](https://hanamirb.org) (0.1) | 39 115 | 40 105 | 38 462 | 37 980 | 38 809 |
| 95 | php (7.4)| [sw-fw-less](https://github.com/luoxiaojun1992/sw-fw-less) (preview) | 38 748 | 41 270 | 41 089 | 40 524 | 40 509 |
| 96 | python (3.8)| [emmett](https://github.com/emmett-framework/emmett) (2.0) | 37 933 | 40 746 | 40 437 | 38 802 | 38 326 |
| 97 | javascript (13.14)| [restify](https://restify.com) (8.5) | 36 981 | 38 365 | 38 383 | 38 345 | 38 831 |
| 98 | ruby (2.7)| [roda](https://roda.jeremyevans.net) (3.31) | 35 915 | 37 163 | 35 701 | 35 334 | 35 315 |
| 99 | php (7.4)| [swoft](https://swoft.org) (2.0) | 35 774 | 36 806 | 36 632 | 36 066 | 36 091 |
| 100 | elixir (1.1)| [plug](https://hexdocs.pm/plug) (1.10) | 34 899 | 35 426 | 34 921 | 33 647 | 33 802 |
| 101 | php (7.4)| [yii-swoole](https://yiiframework.com) (2.0) | 34 632 | 35 756 | 35 534 | 35 177 | 34 979 |
| 102 | ruby (2.7)| [cuba](https://cuba.is) (3.9) | 33 890 | 34 441 | 33 304 | 33 077 | 33 236 |
| 103 | clojure (1.1)| [luminus](https://luminusweb.com) (1.0) | 32 180 | 33 183 | 33 037 | 32 633 | 32 899 |
| 104 | elixir (1.1)| [phoenix](https://phoenixframework.org) (1.5) | 30 140 | 30 566 | 30 049 | 29 216 | 29 006 |
| 105 | crystal (0.34)| [shivneri](https://github.com/ujjwalguptaofficial/shivneri) (0.15) | 29 736 | 27 028 | 25 511 | 21 907 | 21 264 |
| 106 | dart (2.7)| [aqueduct](https://aqueduct.io) (3.3) | 29 418 | 28 746 | 29 661 | 28 099 | 28 051 |
| 107 | fsharp (4.7)| [suave](https://suave.io) (2.5) | 28 454 | 30 259 | 31 980 | 33 219 | 30 656 |
| 108 | python (3.8)| [responder](https://python-responder.org) (2.0) | 27 921 | 30 834 | 30 467 | 29 421 | 29 425 |
| 109 | python (3.8)| [fastapi](https://fastapi.tiangolo.com) (0.54) | 27 803 | 28 348 | 27 606 | 27 349 | 27 924 |
| 110 | ruby (2.7)| [rack-routing](https://github.com/georgeu2000/rack-routing) (0.0) | 27 100 | 26 839 | 26 361 | 26 384 | 26 574 |
| 111 | ruby (2.7)| [rack_app](https://rack-app.com) (7.6) | 26 793 | 26 649 | 26 102 | 25 870 | 26 012 |
| 112 | python (3.8)| [clastic](https://github.com/mahmoud/clastic) (19.9) | 25 383 | 25 057 | 24 926 | 24 117 | 24 721 |
| 113 | python (3.8)| [molten](https://moltenframework.com) (1.0) | 25 077 | 25 352 | 25 075 | 24 643 | 22 881 |
| 114 | ruby (2.7)| [camping](https://github.com/camping/camping) (2.1) | 24 869 | 24 490 | 24 034 | 23 958 | 23 927 |
| 115 | rust (1.43)| [iron](https://ironframework.io) (0.6) | 23 834 | 23 925 | 23 991 | 23 834 | 23 783 |
| 116 | python (3.8)| [aiohttp](https://aiohttp.readthedocs.io) (3.6) | 23 351 | 26 170 | 24 794 | 24 661 | 25 077 |
| 117 | javascript (13.14)| [turbo_polka](https://github.com/mafintosh/turbo-http) (0.3) | 23 222 | 22 339 | 20 952 | 20 673 | 20 612 |
| 118 | python (3.8)| [masonite](https://masoniteproject.com) (2.3) | 22 386 | 23 047 | 22 876 | 23 281 | 23 170 |
| 119 | python (3.8)| [flask](https://flask.pocoo.org) (1.1) | 22 369 | 22 237 | 22 232 | 21 720 | 22 136 |
| 120 | php (7.4)| [spiral](https://github.com/spiral/framework) (2.4) | 18 099 | 18 654 | 19 095 | 18 885 | 18 731 |
| 121 | python (3.8)| [sanic](https://github.com/huge-success/sanic) (19.12) | 17 560 | 16 948 | 15 619 | 16 251 | 15 668 |
| 122 | java (8)| [blade](https://lets-blade.com) (2.0) | 16 897 | 19 940 | 19 626 | 18 219 | 15 671 |
| 123 | ruby (2.7)| [sinatra](https://sinatrarb.com) (2.0) | 15 778 | 15 543 | 15 578 | 15 604 | 15 527 |
| 124 | ruby (2.7)| [grape](https://ruby-grape.org) (1.3) | 14 394 | 14 330 | 14 359 | 14 153 | 14 249 |
| 125 | javascript (13.14)| [sails](https://sailsjs.com) (1.2) | 12 052 | 12 504 | 12 780 | 12 417 | 12 522 |
| 126 | swift (5.2)| [swifter](https://github.com/httpswift/swifter) (1.4) | 11 867 | 11 941 | 11 844 | 11 883 | 11 909 |
| 127 | go (1.14)| [tango](https://gitea.com/lunny/tango) (0.6) | 11 574 | 11 852 | 11 851 | 6 145 | 6 003 |
| 128 | ruby (2.7)| [flame](https://github.com/AlexWayfer/flame) (4.18) | 11 328 | 11 128 | 11 045 | 11 058 | 10 900 |
| 129 | python (3.8)| [quart](https://pgjones.gitlab.io/quart) (0.11) | 11 268 | 11 836 | 11 253 | 10 682 | 10 689 |
| 130 | ruby (2.7)| [hanami](https://hanamirb.org) (1.3) | 10 763 | 10 654 | 10 661 | 10 638 | 10 598 |
| 131 | python (3.8)| [tornado](https://tornadoweb.org) (6.0) | 9 621 | 10 054 | 10 046 | 9 851 | 9 340 |
| 132 | php (7.4)| [ubiquity](https://ubiquity.kobject.net) (2.3) | 9 097 | 9 007 | 8 975 | 49 695 | 47 684 |
| 133 | python (3.8)| [cherrypy](https://github.com/cherrypy/cherrypy) (18.6) | 8 592 | 9 011 | 8 991 | 8 978 | 8 948 |
| 134 | python (3.8)| [django](https://djangoproject.com) (3.0) | 8 266 | 9 633 | 9 523 | 9 349 | 9 523 |
| 135 | php (7.4)| [one-fpm](https://github.com/lizhichao/one) (2.0) | 7 877 | 7 846 | 7 723 | 43 707 | 42 648 |
| 136 | php (7.4)| [siler](https://siler.leocavalcante.dev) (1.7) | 7 621 | 7 583 | 7 499 | 44 159 | 41 845 |
| 137 | go (1.14)| [gramework](https://github.com/gramework/gramework) (1.7) | 7 579 | 5 092 | 5 065 | 1 390 | 5 001 |
| 138 | php (7.4)| [phalcon](https://phalcon.io) (4.0) | 7 511 | 7 427 | 7 502 | 48 761 | 48 563 |
| 139 | php (7.4)| [ice](https://iceframework.org) (1.5) | 6 187 | 6 185 | 6 148 | 48 979 | 46 677 |
| 140 | php (7.4)| [chubbyphp](https://github.com/chubbyphp/chubbyphp-framework) (2.8) | 5 580 | 5 547 | 5 565 | 43 128 | 39 236 |
| 141 | php (7.4)| [slim](https://slimframework.com) (4.5) | 4 568 | 4 551 | 4 648 | 41 044 | 40 453 |
| 142 | php (7.4)| [nette](https://nette.org/en/) (3.0) | 4 384 | 4 468 | 4 600 | 42 020 | 38 555 |
| 143 | php (7.4)| [lumen](https://lumen.laravel.com) (7.1) | 4 267 | 4 229 | 4 387 | 41 838 | 41 829 |
| 144 | php (7.4)| [yii](https://yiiframework.com) (2.0) | 4 111 | 4 111 | 4 074 | 41 056 | 38 630 |
| 145 | ruby (2.7)| [rails](https://rubyonrails.org) (6.0) | 3 808 | 3 586 | 3 582 | 3 543 | 3 517 |
| 146 | pony (0.34)| [jennet](https://github.com/Theodus/jennet) (0.1) | 3 602 | 6 030 | 350 | 4 956 | 5 017 |
| 147 | crystal (0.34)| [onyx](https://onyxframework.org) (0.5) | 3 341 | 2 538 | 1 723 | 2 417 | 3 952 |
| 148 | php (7.4)| [symfony](https://symfony.com) (4.3) | 3 167 | 3 183 | 3 225 | 41 489 | 38 726 |
| 149 | php (7.4)| [mezzio](https://docs.mezzio.dev) (3.2) | 2 824 | 2 843 | 2 866 | 41 727 | 39 370 |
| 150 | julia (1.4)| [merly](https://github.com/codeneomatrix/Merly.jl) (0.2) | 2 536 | 8 101 | 6 508 | 5 038 | 3 025 |
| 151 | python (3.8)| [cyclone](https://cyclone.io) (1.3) | 2 438 | 2 471 | 2 419 | 2 369 | 2 406 |
| 152 | python (3.8)| [nameko](https://github.com/nameko/nameko) (2.12) | 1 567 | 1 513 | 1 483 | 1 493 | 1 497 |
| 153 | python (3.8)| [klein](https://github.com/twisted/klein) (19.6) | 1 558 | 1 528 | 1 495 | 1 506 | 1 494 |
| 154 | php (7.4)| [laminas](https://getlaminas.org) (3.1) | 1 418 | 1 443 | 1 520 | 38 570 | 36 297 |
| 155 | crystal (0.34)| [lucky](https://luckyframework.org) (0.21) | 1 415 | 1 386 | 884 | 887 | 928 |
| 156 | php (7.4)| [laravel](https://laravel.com) (7.9) | 707 | 173 | 2 591 | 23 753 | 22 647 |
| 157 | php (7.4)| [basicphp](https://github.com/ray-ang/basicphp) (0.9) | 596 | 498 | 1 914 | 33 743 | 34 334 |
| 158 | perl (5.3)| [dancer2](https://perldancer.org) (2.0) | 458 | 783 | 1 023 | 1 438 | 529 |
## How to contribute ?
In any way you want ...
+ Request a framework addition
+ Report a bug (on any implementation)
+ Suggest an idea
+ ...
Any kind of idea is :heart:
## Contributors
- [Taichiro Suzuki](https://github.com/tbrand) - Author | Maintainer
- [OvermindDL1](https://github.com/OvermindDL1) - Maintainer
- [Marwan Rabbâa](https://github.com/waghanza) - Maintainer