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