rust-web-framework-comparison
rust-web-framework-comparison copied to clipboard
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
Feel free to create a script that runs & records the benchmarks :)
1 example: 245k req/s for actix-web vs 208k req/s for thruster https://www.reddit.com/r/rust/comments/8t18b2/thruster_044_greatly_improved_performance/e146foq/
@mitchtbaum Please, notice that it was the other way around on my laptop: 245k req/s for Thruster vs 208k req/s for Actix-web, but I cannot believe the numbers as Python-based framework Vibora reaches 328k req/s which is complete nonsense! I don't understand what is going on...
@frol Well, python also has japroto which cloud be a lot faster than Vibora since most parts are written in C.
@pickfire @frol @naturallymitchell I'm doing the same thing (mesuring performance) in https://github.com/the-benchmarker/web-frameworks
We could centralize our efforts :heart:
@waghanza There is also https://github.com/TechEmpower/FrameworkBenchmarks which may contains even more
Sure, but a little bit different. In short, my value is to take care of having up-to-date versions of frameworks and languages
We could centralize our efforts heart
:+1:
There is also https://github.com/rousan/rust-web-frameworks-benchmark