77 karma · joined December 15, 2021
More info here:
python.org/dev/peps/pep-0333/
Yeah, I did get some inspiration from Bjoern for this project. Was also a learning project for me. I used this project to pick up C and learn a bit more about HTTP!
Hoping to add a few more features to the server side of things, still not finished, but I agree, there is only so much you can do to optimize things when you're making calls to Python anyway.
And yes, if you have some application that you've tried to optimize somewhat and haven't managed to get the desired performance you would like, or if you simply haven't had the time to re-write components to be faster, ideally you could use FastWSGI as a drop in replacement for your current WSGI server and get the extra perf boost for "free". It's still in early development, but this is ultimately one of the main goals of the project.
I've been working on adding multiprocessing to FastWSGI (only works on Linux at the moment). The RPS almost scales linearly with the number of workers. At 4 processes it hits +260k RPS with decent CPU utilization.
I can definitely add more details to the benchmarks. Thanks for the feedback!
There are many frameworks out there. I do intend to test out some more. For now I've only tested the popular Flask framework and a simple bare bones WSGI app.
Flask was never developed to be lightning fast. Even still, I am quite surprised at how slow it is now that I've seen what kind of numbers can be achieved. I haven't looked deep into it to see where the issues might be.
As for security, that is a work in progress... I definitely wouldn't use FastWSGI in production in the projects current state. It's still early days in terms of development.
My guess is that I avoid calling Python as much as possible. Most of the parsing and the `start_response` code is all written in C instead of Python.
Flask applications seem to have some bottleneck. I don't see the same performance numbers as I do with the basic WSGI app.
*A note: Those tests are just "Hello World" tests on a single worker. They should be taken with a grain of salt...
I have also recently managed to get it working on multiple platforms (Linux, MacOS and Windows).
If you want to significantly speed up your WSGI based applications, check it out!
It is still in early development at the moment. Any feedback would be greatly appreciated!
=== [Links] ===
Github: https://github.com/jamesroberts/fastwsgi
Pypi: https://pypi.org/project/fastwsgi/
Performance comparisons against other popular WSGI servers: https://github.com/jamesroberts/fastwsgi/blob/main/performan...