uWSGI
* WE ARE MOVING TO GITHUB, UPDATED DOCS ARE ON READTHEDOCS.ORG *
http://github.com/unbit/uwsgi-docs
readthedocs: http://uwsgi-docs.readthedocs.org/en/latest/
The uWSGI project aims at developing a full stack for building (and hosting) clustered/distributed network applications.
Mainly targeted at the web and its standards, it has been successfully used in a lot of different contexts.
Thanks to its pluggable architecture it can be extended without limits to support more platforms and languages. Currently, you can write plugins in C, C++ and Objective-C
The 'WSGI' part in the name is a tribute to the namesake python standard, as it has been the first developed plugin for the project.
Currently the suite includes the following components:
The core (implements configuration, processes management, sockets creation, monitoring, logging, shared memory areas, ipc, cluster membership and the SubscriptionSystem)
Request plugins (implement application server interfaces for various languages and platforms: WSGI, PSGI, Rack, Lua WSAPI, CGI, PHP, Go ...)
Gateways (implement load balancers, proxies and routers)
The Emperor (implements massive instances management and monitoring)
Loop engines (implement concurrency, components can be run in preforking, threaded, asynchronous/evented and green thread/coroutine modes. Various technologies are supported, including uGreen – uWSGI Green Threads, Greenlet, Stackless, The Gevent loop engine, Goroutines and Fibers)
Supported Languages/Platforms
See the following table for a list of current language plugins:
| Technology | Available from version | Notes | Status |
| Python | 0.9.1 | The first available plugin, supports WSGI (PEP333, PEP3333), Web3 from version 0.9.7-dev and Pump (from 0.9.8.4). Works with VirtualEnv, Multiple Python interpreters, Python3k and has unique features like module aliasing, DynamicVirtualenv and uGreen. A module exporting handy Decorators for the uWSGI api is available in the source distribution. PyPy support is available starting from 1.2. From 1.3 the Tracebacker has been added | Stable (100% uwsgi api support) |
| Lua | 0.9.5 | Support wsapi, coroutine and threads | Stable (60% uwsgi api support) |
| Perl | 0.9.5 | PSGI support. multiple interpreters, threading and async modes supported | Stable (60% uwsgi api support) |
| Ruby | 0.9.7-dev | Rack and RubyOnRails support. A loop engine for Ruby 1.9 fibers is available as well as a handy DSL module | stable (80% uwsgi api support) |
| Erlang | 0.9.5 | allows message exchanging between uWSGI and Erlang nodes. ErlangIntegration | Stable (no uwsgi api support) |
| CGI | 1.0-dev | run CGI scripts | Stable (no uwsgi api support) |
| PHP | 1.0-dev | run PHP scripts | stable from 1.1 (5% uwsgi api support) |
| Go | 1.4 | run Go application | stable from (20% uwsgi api support) |
| JVM | 1.9-dev | allows integration between uWSGI and the JVM. An example WSGI-like (jwsgi) handler is available | Stable |
| mono | 1.9-dev | allows running Mono ASP.NET applications | Stable |
| V8 | 1.9.3 | allows integration with the javascript V8 engine | Beta |
Documentation (links pointing to readthedocs are updated, the others are old reference)
- Quickstart (for Python/WSGI)
- Quickstart (for Perl/PSGI)
- Quickstart (for Ruby/Rack)
- Things to know (read it)
- Emperor manage multiple uWSGI instances (vassals)
- Configuration Options
- Download
- Install
- Examples
- Managing the uwsgi processes
- Tips&Tricks
- AlarmSubsystem (new)
- GraphExample
- Notes for packagers
- ParsingOrder
- SubscriptionServer
- Advanced logging (even networked, see UdpLogging, SocketLogging, ZeroMQLogging, LogFormat, RedisLogging, MongoDBLogging)
- VirtualHosting mode (from version 0.9.6)
- ConfigLogic and CustomOptions for simple dynamic configurations
Get it
The current (stable) release can be downloaded from:
http://projects.unbit.it/downloads/uwsgi-1.9.10.tar.gz
(released 20130511)
The latest LTS release can be downloaded from:
http://projects.unbit.it/downloads/uwsgi-1.4.9.tar.gz
(released 20130309)
Code repositories
latest code (can be unstable, experimental or hard to compile)
https://github.com/unbit/uwsgi/
Developers/Users mailing list
Please note that with a large open source project such as uWSGI, the code and the documentation may not always be in sync. This mailing list is the best source for help regarding uWSGI.
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
Official IRC channel (freenode)
#uwsgi
The owner of the channel is "unbit"
Gmane mirror
http://dir.gmane.org/gmane.comp.python.wsgi.uwsgi.general
pkgsrc area
Gentoo ebuild
http://packages.gentoo.org/package/www-servers/uwsgi
Debian packages (starting from Wheezy)
apt-get install uwsgi uwsgi-plugin-python
http://packages.debian.org/source/wheezy/uwsgi
Ubuntu packages (starting from 12.04 LTS)
apt-get install uwsgi uwsgi-plugin-python
http://packages.ubuntu.com/source/precise/uwsgi
Arch Linux PKGBUILD
https://aur.archlinux.org/packages.php?ID=41075
Donate (if you want)
Even if the uWSGI development is sponsored by a company (Unbit) and its customers, and you can buy commercial support and licensing, you may want to support it in a less bureaucratic way. If you are not an Unbit customer, or you cannot/donotwant to buy a commercial license consider making a donation. Obviously, feel free to ask for new features in your donation. We will give credits to everyone will want to sponsor new features.
or (via gittip) https://www.gittip.com/unbit/
