I apologize ahead of time for my humor.Do you have any plans to add memory usage to the benchmarks?
Looking back in on it now, holy MAN!For Rust, I'm interested to see what the future holds once the community coalesces around an async IO interface. Is this the fault of Rust not having good db clients right now, or does tokio struggle balancing between multiple tasks?an additional question is why we are beaten by Java frameworks in JSON serialization.rust doesnt have good async db story, that is it. The first round included 9 implementations.
The "joke," for whatever it's worth, is simply that we didn't sufficiently appreciate how useful it would be for this project and how insignificant the overhead would be. Get Started Learn More Latest Release: 0.4.5 (May 30, 2020) 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:To build web clients with Rust, you can choose between these libraries: In large part, they can defer the mental burden of worrying about performance, and in some cases can defer that concern forever. they are two different animals.Moreover, I'm sure all of these frameworks are not well optimized for a raw performance benchmark, and also these results are heavily affected by filters you are choosing. results of actix are pretty good, and it is built on top of tokio.The use of the postgres crate instead of Diesel is a big chunk of it.The plaintext benchmark is a very unrealistic one, it measures how well can you deal with a single client flooding your pipeline.On all the other tests you only get a new request once you have replied first so DB drivers, time to flush your reply, and many more items are now relevant.Very good results for actix! You can return cursors, you can use json etc, ...But you can pipeline SQL statements. Use Git or checkout with SVN using the web URL. Hardware should be much slower and Ruby was way slower as well. Are the other frameworks really that much faster in practice?What kind of traffic do you see in production? Then you realize if you were using Python or Node or anything other than C or Java really, you'd likely still be working out how to support tens of thousands on that same set of hardware. It's way down but again, the "way down" is 20k requests per second. Why would I chose rust (or C++) for web servers, when I can optimize for development time?The gains you get for traversing the learning curve are ridiculous -- C/C++ level speed with a near-Haskell type system, NodeJS level ease-of-reuse, Golang-level buildability (IIRC they're well known for making it so easy to static build for different targets), and a stack that you can take from embedded hardware all the way into the web browser (with WASM). Client frameworks 1. These benchmarks are running very basic queries that perform well on either MySQL or PostgreSQL.The Blog post [1] which explains things in details.I love these but I've also seen in some of the implementations that I care about a bit of benchmark gaming. Real-world web projects using Rust 4. But it's done now!In brief, the Docker conversion effort has increased the stability and reliability of the results.There are a huge number of ways to consume the results and as many opinions.
The basic design pattern this project explores uses Rust to implement CPU bound portions of an app while using existing web technologies to handle user facing, I/O bound pieces.