Rating of high-speed web frameworks 2020



I was puzzled the other day by choosing a solution for the server backend of one loaded site builder. The current architecture is built on the popular MVC framework in the good old PHP. Such a framework is good for the rapid development of a large amount of functionality and a quick start, we all know this. Only after this start, the moment soon comes when bottlenecks arise that require increased performance and the usual universal framework can no longer cope.

In the process of finding a solution, I came across analytics of the speed of processing requests for a large number of frameworks that exist today. I chose from them those who have more than 5,000 stars on GitHub and who process more than 150,000 requests per second. In the formula for calculating the rating, the second parameter is squared, since the fluctuations of the stars are much larger.

As a result, the formula is as follows:
Number of stars on GitHub * (Number of requests per second) ^ 2

Bold leaders in terms of request processing speed are highlighted in bold.

1. Beego [go] - 359 279
2. Gin [go] - 252 895
3. FastHttp [go] - 420 498
4. Echo [go] - 262 940
5. ASP.NET Core[csharp] - 263 725
6. Workerman [php] - 349 897
7. Mux [go] - 263 585
8. Koa [js] - 159 032
9. Perfect [swift] - 218 634
10. Chi [go] - 274 507
11. Fastify [js] - 177 372
12. Falcon [python] - 208 805
13. Bottle [python] - 168 776
14. Ktor [kotlin] - 162 842
15. owboy [elixir] - 160 063

Measurements of the number of requests in second conducted using wrk. The counting mechanism is based on answers in three scenarios:
- opening the main page with the answer 200 and blank content
- open the / user pages with the answer 200 and blank content
- open the / user / __ ID__ pages with the answer 200 and c __ID__ in the content

If you did not find your favorite framework, then look at the source, there they are more than a hundred. If not there, then it will appear soon and the rating will be reviewed. You can speed this up by creating a pull request with your framework.

Data source: GitHub and web-frameworks.

If you have experience using any of these frameworks, I will be glad to discuss with you in the comments.

Source: https://habr.com/ru/post/undefined/


All Articles