uWSGI is an open source, multiplatform, free and command-line software implemented in C and designed from the ground up as a standalone tool for developing a full stack for generating hosting services. It comes with a variety of attractive features and a powerful plugin architecture (plugins can be written in C, C++ and Objective-C programming languages).
Features at a glance
Key features include low memory footprint, support for building multiple apps in a single process or domain, advanced logging functionality, static file serving functionality by using sendfile(), extremely fast communication protocol specifically designed for web server integration, support for the Apache web server, as well as hot-add of WSGI (Web Server Gateway Interface) applications.
Additionally, it comes with a preforking mode that greatly improves concurrency, support for multiple interpreters, support for multiple Python versions (2.4, 2.5, 2.6, etc.), an integrated profiler called cProfiler, self-healing via harakiri mode, RSS usage reports, address space usage reports, configurable python-generated threads, and a CGI (Common Gateway Interface) mode with included examples.
Among other interesting features, we can mention vector based I/O that minimizes syscall usage, support for sending print statistics (SIGUSR1) to processes, a static configuration option that relies on a simple XML file, increase availability thanks to its socket failover in Apache module, as well as customizable buffer size that allows you to run the software on low-memory machines or to manage overwhelming requests.
Supported operating system and architectures
uWSGI is a portable software that has been successfully tested with Linux, FreeBSD and Mac OS X operating systems. The software is distributed as a universal sources archive in the tar.gz file format, designed for both 32-bit and 64-bit hardware architectures. It is developed by the Italian ISP Unbit company, which offers commercial support to small and medium sized businesses.