UWSGI is a fast (pure C), self-healing, developer-friendly WSGI server
projects.unbit.it
projects.unbit.it
Why ? There are already mod_wsgi, flup and lot of protocols (fastcgi, scgi...).
Is this faster or simpler to configure ?
Stop acting as a Rails user ! Deploy of python web applications is not a problem.
No need of ultra-hypeous next-fu*king-useless almost-working deploy technology.
The challenge in the python-world is now "features", uWSGI is a feature rich
application, developer (and administrator/security paranoid/business environments)
friendly. Stop.
Other deploy systems, works very well, this one does only more things.I'd prefer to see this wrapped up as an nginx-module and seems they have that on their todo-list - awesome!
mod_wsgi for apache seems to do the same so I should have been more specific: I'm still waiting for a proper mod_wsgi for nginx. The nginx mod_wsgi is not the same as the apache version. It has some very unfortunate problems which effectively rule it out for production use:
http://blog.dscpl.com.au/2009/05/blocking-requests-and-nginx...
At the moment the most stable version of Nginx to run mod_wsgi with is the legacy 0.6.+, the original author ported it during the 0.5 release.
Performance and integration wise, Passenger excelled over trying to hack the mod_wsgi plugin into working. And as you said there are too many bugs to be effectively used in a production environment.
Once Passenger is compiled, it only requires two lines in the Nginx configuration to enable a Python WSGI application, and its no more heavy on resources than Nginx itself. You do of course have to restart Nginx (which in effect restarts Passenger) if you change or add a web application, but thats about the only hard part. Passenger even builds and installs Nginx for you, so not sure where the high maintenance is at.
Actually depending on your web framework you don't even have to do that. Werkzeug and others support code-reloading.
By the way I had a talk with a passenger developer yesterday and the WSGI support seems to be stabilizing. I was told that dreamhost is already using it in production - so it's undocumented but functional.
Thanks gduffy for linking my Nginx + Passenger + Python article, never new this site existed.
Also it is good to have a couple of different python extensions for apache. It keeps them all on their toes.
I'm not sure the GPL licence makes sense for this project though. It means that to use it, people have to use the GPL for their web apps... or pay/negotiate a different licence. Well, maybe getting people to pay for it is their intention.
The protocol uses a 16bit length headers... meaning it will fail for big payloads. That turned me off investigating it out any further. However it is likely not a problem.
If your app links to a GPL app, then your app is most likely covered by the GPL.
There are not copyright notices in all the files... but it looks like you are supposed to import a GPL module into your python program... thus the GPL is in effect. The uwsgi.c python module has a GPL copyright notice.
If your python web app talks to the server over a socket... then that is a different thing, and the GPL does not apply.
So I'm not sure how it applies in this case where your app talks to it over a socket. Note the README in the project is empty... and there is not much other documentation which I could find that explains exactly how this is to be used.