*** current *** * 1.4.1 - fixed typos in corerouter plugins - fixed offloading when the number of threads is higher than 1 - fixed static_maps for non-existent paths - fixed uwsgi_connect() on modern Linux systems to reset the socket to blocking mode *** november 2012 *** * 1.4 - gevent improvements - improved http/https router and fastrouter - Go official support - a new set of infos are exported to the stats system - improved systemd support - log filtering and routing - improved tracebacker - offload transfer for static files, and network transfers - matheval support - plugins can be written in Obj-C - smart attach daemon - added support for PEP 405 virtualenvs - rawrouter with xclient support - internal routing plugin for cache *** semptember 2012 *** * 1.3 - python tracebacker - user-governed harakiri - simplified external plugin development - Linux namespace mountpoint improvements - secured subscription system - merged routers codebase (fastrouter, http, rawrouter) - https support in the http router - config report at the end of uWSGI build process - improved subscription system (multicast and unix socket) - custom options - graceful reloads on shared sockets - configurable log-master buffer size - extreme-optimizations for the stats subsystem - redislog and mongodblog plugins - added python logger - mongodb and postgres imperial monitors - implemented psgix.logger and psgix.cleanup - full rack spec compliance - preliminary ipv6 support - gevent graceful reloads - support for multiple loggers and logformat - lazy-apps to load apps after fork() but without changing reloading subsystem - emperor heartbeat subsystem - cheaper busyness plugin - pluggable clock sources - added router_rewrite and router_http plugins - external spoolers - support for section:// and fd:// loaders - alarm subsystem (with curl and xmpp plugins) *** april 2012 *** * 1.2 [20120430] - PyPy support - Improved gevent support with threads - Python auto-reload subsystem - added --spooler-max-tasks - pthread robust mutexes support in Linux and Solaris - posix semaphores support in FreeBSD9 - thread-safe ctime() reporting - interval support in cron subsystem - improved syslog support - better management of disconnected clients - static files serving improvements - another set of multithreading optimizations - minor fixes in the Rack plugin - Upstart socket-activation support *** march 2012 *** * 1.1 [20120317] - new options parser subsystem - improved php support - multiple spooler with multiprocessing - segmentation fault and floating point exceptions manager - never-swap option - zergpool plugin - perl/psgi multiple interpreters support - deadlock detector - pluggable cheaper algos - new internal routing susbsystem - preliminary support for config logic - log rotation infrastructure - support for paste loggers - threading improvements - plugins can now mapped to specific modifiers - tag is deprecated (use mount option) - report startup time for apps - reintroduced expat support - reintroduced remote spooler plugin - various fastrouter optimizations - added ruby rvm support *** december 2011 *** * 1.0 [20111230] - adaptive process spawning (--cheaper option) - new control options --stop, --reload, --suspend, --resume, --pause - stats framework - new subscription system - support for mime types in static file serving - posix capablities support - uWSGI mules and farms - support for multiple --touch-reload options - new logging subsystem - new custom locking subsystem - process name handling - better (and faster) HTTP parser - perl and python threading improvements - new plugins: rrdtool, carbon, cgi, php - various improvements in the Rack/ruby plugin - Linux KSM support - refactored ping and nagios plugins - support for signals in lazy mode - optimized static-file serving - support for linux unshare() *** august 2011 *** * 0.9.9 [20110829] - various spooler improvements - upload progress optimizations and fixes - new emperor mode: Tyrant - allows multiple --ini options - better binary path detection - gevent loop engine support - resolve domain names in socket logging - snmp fixes and reintroduction of the snmp-api - fixed grunt mode - you can specify build profile via env var UWSGI_PROFILE - reintroduction of string-based multiapp - new option --emperor-throttle - improved queue and sharedarea subsystems - uWSGI can now be built as a shared library - new api attribute: uwsgi.magic_table - improved apache2 module - new option --pyshell - allow threads in gateways - fastrouter improvements - the application list is now shared and exported to the api - allows setting the thread stack size - UWSGI_APPID for better multiapp hosting - better reloading in lazy mode - native pump support - various rack fixes - support for attaching binary data in the executable - new option --set - extreme-optimized http protocol parser - WSGI handler optimizations *** july 2011 *** * 0.9.8.3 [20110723] - implemented uwsgi.SymZipImporter to load embedded zip files - OSX Lion is officially supported - fixed xinetd support (example file added in contrib) - suppot for systemd socket activation - added --freebind option (Linux only) * 0.9.8.2 [20110719] - fixed an ini and yaml parsing bug spotted by Raffaele Colace - spooler has been extremely improved - new option --chown-socket - added uwsgidecorators for elegant uwsgi api access from python - the rack plugin is now stable - support for embedding config and generic files in the server binary - high-performance cache-server - accept() is now locked on all threads in the same workers - preliminary implementation of hooks in emperor - support for C++ in server core - tcp port auto-bind - implemented workers, workerN and spooler signal target - prefork/multithread uwsgi.signal_wait() implementation - export uwsgi.node in WSGI vars - new option --import (python plugin) - support for unlimited number of Linux cgroups - broodlord mode *** june 2011 *** * 0.9.8.1 [20110625] - the build system has been improved - various threading fixes - fix python GIL status after reload - new option --propagate-touch - fixed uwsgi.sendfile - fixed readline() support in wsgi.input - fixed dynamic touch reload - new option --logto2 - export %c in config files - fixed libyaml support - support passing modifiers in subscription system - reset random seed in spooler - subscribe from a list in a text file - allow binding on port 0 (auto-assignment) - reset random seed on grunt - fix vhost mode for empty hostname - fixed python3+virtualenv support - tasks are now allowed to chdir() in spooler - better zeromq+clustering support - clustering has been refactored - fixed rpc - report correct worker id in cheap mode - fixed a fd-leak in attach-daemon - use setsid() in attach-daemon - zerg mode - added psgix.harakiri - allows magic vars in sqlite3 config db - added UWSGI_FASTROUTER_KEY var - slowdown async-queue-is-full messages - new option --cron - --vassals-start-hook and --vassals-stop-hook - the proxy plugin has been removed * 0.9.8 [20110605] - support for --callable in virtualhosting mode - a NetBSD fix - abstract unix socket can be prefixed with \0 (nginx-style) - add /lib to the linker in sun-like systems - a mercy mode of 5 seconds is enabled by default on SIGINT/SIGQUIT * 0.9.8-rc4 [20110602] - fixed REMOTE_ADDR when --protocol=http - official support for OpenIndiana - added a welcome.py test script - new api attribute uwsgi.version_info - improved the admin plugin - two new management flag for backlog queue monitoring - fixed uwsgi_log for bigger loglines - new option --early-emperor to allows out-of-jail emperors - emperor can now spawn other emperors (sub-emperors) - fixed idle mode in single-process - fixed solaris iovec *** may 2011 *** * 0.9.8-rc3 [20110530] - snapshotting support - fixed python 3.x spooler - improvements for grunt processes - better abstract unix socket - --log-socket allows logging to generic DGRAM sockets - a bunch of solaris fixes - new option --no-fd-passing for fastrouter - --fastrouter-subscription-slot to set the number of slot in subscription server - unlimited shared sockets - fixed netlink compilation - auto-reconnect on emperor+amqp server disconnection - various emperor fixes - unlimited fastrouter sockets - better cgroup support - --add-header option allow adding of custom HTTP response headers - cheap and idle operational modes * 0.9.8-rc2 [20110521] - new option --die-on-term - fixed touch reload - a couple of optimizations for wsgi.input - systemd integration * 0.9.8-rc1 [20110514] - massive code cleanup and refactoring - added vassals loyalty concept - fixed virtualhosting with dynamic virtualenv - fixed reloading on grand-central-dispatch-enabled OSX - improved PSGI support with uGreen and async support - improved Rack support with complete fiber+async in ruby 1.9 - support for JSON config files - native multi-protocol support (added fastcgi and http) - Mongrel2 support - support for templates in vassals - various threading fixes - gcc-4.6 support - support for logging via zeromq - support for configuration passed via pipe/stdin - pythonpath entries are now unlimited - socket entries are unlimited - pythonpath can be a glob - lazy mode added - new language-independent profiling subsystem - support for configuration stored in a sqlite3 db - allow workers to survive to syslogd death (when --log-syslog is used) - fix traceback in Python 3.x - support for uwsgi signals in threads - plugin autoloading - graceful reloading for threads - new wsgi.input object - support for alternative allocators (tcmalloc and jemalloc) *** april 2011 *** * 0.9.7.2 [20110406] - new option --touch-reload to reload the stack on modification --static-map allows to serve static files - fixed --post-limit management - disallow empty socket names - implemented exception_info WSGI support - new options --reload-on-as and --reload-on-rss allows to recycle workers when their memory usage is higher than MB - fixed syslog support (use --log-syslog[=facility] to enable it) - improved plugin loading system - added support for RabbitMQ as event dispatcher for the Emperor - fixed FreeBSD memory report - PSGI plugin can be compiled without ithreads - various Emperor fixes - fixed a regression with setgroups() - support for shared sockets (used in jails within network namespaces) *** march 2011 *** * 0.9.7.1 [20110326] - fixed python stackless support - added persistence for queue - forbid daemonizing in vassal mode - modifier1 30 is available again - allow python modules to be mapped/aliased via http - added --pidfile2 and --logfile-chown - added UWSGI_CACHE_GET dynamic variable - 304/If-Modified-Since support for --check-static - option --check-cache for integrated caching - option --map-socket to assign specific workers to socket - fixed unix fd passing on older OSX versions - fixed post-buffering without pep3333-input - fixed python threading without uwsgi cores - support for Linux network namespace - build with sys.abiflags if necessary * 0.9.7 [20110317] - fixed psgi compilation on GNU systems - improved --pep3333-input - better error reporting on failed open/fopen - fixed uGreen - added greenlet support - various solaris fixes - new help system - updated async support - fixed uwsgi.cache_get in python * 0.9.7-rc3 [20110312] - added support for persistent cache (--cache-store ) - less verbose file monitoring - fixed a race condition in emperor startup - fixed erlang empty list encoding - improved snmp support - fixed cache modifier 111 for 3 and 4 - preliminary cpu-affinity support (Linux only) - fixed ldap support - auto-configure ldap compilation - added --allowed-modifiers (allow only a subset of modifiers) - fixed a bug with getopt_long * 0.9.7-rc2 [20110309] - added cron-like interface to signal framework - improved Linux namespaces support - fixed multithreading + --max-requests - added support for reference in configuration files * 0.9.7-rc1 [20110307] - export %v in emperor mode - fixed signal race condition in server reload - fixed http router post handling bug - added uwsgi.erlang_register_process in pyerl plugin - fixed unix socket inherit - fixed linux namespace support in recent kernel/gcc - ported threading to python 3.2 - add build date to uWSGI startup info - do not allow clustering without defining a socket - kill all the gateways/daemons on startup errors - fixed vacuum after chdir() - fixed gateways reload - re-added support for OpenBSD and NetBSD - fixed post-buffering in python - use erlang binary for python string - fixed memory leak in pyerl plugin - removed broken log rotation (post-poned) - fixed no_argument options in ini and yaml parsing * 0.9.7-beta1 [20110301] - fully modular re-design - advanced build system with presets - threading support - emperor mode for massive auto-hosting - caching subsystem - message queue (even stacked) support - improved server reloading system - support for Linux Cgroups and Namespaces - integrated upload progress - Clustering infrastructure via multicast, broadcast or subscriptions - support for attaching/monitoring external apps to the master process - improved virtualhosting mode - extremely improved Python support with better usage of multiple interpreters - improved multiple apps support - Production ready, evented HTTP router/proxy/load-balancer - Production ready, evented uwsgi router/proxy/load-balancer - new Erlang stack - Internal signal subsystem - support for RubyOnRails and Rack apps - A huge series of fixes and optimizations *** february 2011 *** * 0.9.6.8 [20110207] - fixed a bug when using --limit-as - fixed a erlang buffer initialization - added --ignore-sigpipe - added --master-as-root *** january 2011 *** * 0.9.6.7 [20110130] - a huge amount of async optimizations and fixes - --logdate takes an optional strftime-like value - follow $PATH on reloading - uwsgi.core is exported in WSGI env - uwsgi.log() respect for --logdate - initial banner respect for --logdate - fixed --post-buffering - default listen backlog queue is now 100 - Python 3 support is no more marked as experimental - Python 3.2 support - new option --chroot-reload will force a reload of the uWSGI stack after a chroot - fixed a typo in INI parsing *** december 2010 *** * 0.9.6.6 [20101230] - support for YAML configuration files - backported python module aliasing from 0.9.7-dev - better apache2 module (support for SetEnv directive, fixed REQUEST_URI and improved connection handling) - uwsgi.post_fork_hook implementation (to execute function after fork()) (thanks George Kollias) - option --gid calls setgroups() after setgid() (thanks Jorge Cardona) - fixed uGreen compilation (and uGreen is now built by default) - fixed timeout and thundering herd problem in async modes (many thanks to Test157 for giving us a good async-test-app) - disable TCP_INFO in older Linux kernels (thanks Bo Shi) - enable TCP_INFO in FreeBSD (limited usage due to FreeBSD kernel support) - fixed static virtualhosting mode using xml files (thanks Guido Notari of Link I.T. spa) - new option --close-on-exec (thanks Jean-Baptiste Quenot) - use HTTP_HOST var (and fallback to SERVER_NAME) in virtual hosting mode - fixed a buffer overflow in automatic socket_name allocation (spotted by Riccardo Magliocchetti) - Official support for Nexenta *** september 2010 *** * 0.9.6.5 [20100929] - PEP 3333 support - fix --pythonpath with --wsgi-file - x-wsgiorg.uwsgi.version renamed to uwsgi.version * 0.9.6.4 [20100925] - fix a stupid bug in conditional logging backport * 0.9.6.3 [20100925] - fix a buffer overflow in .ini parsing (it throws a glibc error on malloc) - backport of conditional logging from 0.9.7-dev - backport of backlog queue monitor from 0.9.7-dev (only Linux) * 0.9.6.2 [20100915] - fix a regression in virtual hosting mode - fix pythonpath usage in --ini and --ini-paste - new uwsgi packet var: UWSGI_CHDIR * 0.9.6.1 [20100912] - print the request uri during SIGPIPE or HARAKIRI - added SIGUSR2 support (it will print the current running request, if available) - protocol parsing optimization - fixed --logto support - new --eval option allows inline definition of WSGI script - support for defining WSGI script in xml using CDATA - allow --pp as --pythonpath shortcut - various spooler optimizations and fixes - added -O2 optimization by default - added uwsgi.is_a_reload commodity function - .ini file support fix - SNMP agent fix - support for subprocesses generated by master - fix a regression in SCRIPT_NAME handling - Haiku official support - gcc 2.95 support - dynamic app management optimizations - export x-wsgiorg.uwsgi.version in WSGI env *** august 2010 *** * 0.9.6 [20100829] - better handling of SCRIPT_NAME - vacuum option for deleting unix sockets and pidfiles after usage - advanced XML configuration - new configuration systems: INI files and LDAP - embedded HTTP server for development/testing - better signal handling - PSGI plugin improved - usability fixes and new commodities options for root startup - grunt processes (detached workers) - preliminary integrated virtualhosting mode - new option catch-exceptions can redirect python exceptions to your browser - logging improvements (--logto and --logdate options) - Full PEP 333 compliant usage of wsgi.file_wrapper - re-initialize random seed after every fork() [security fix] - fix Spooler's usage of stdin - export WSGI environment in uwsgi.env (for doing evil things) - logsize tracking (uwsgi.logsize) for future embedded log rotation *** july 2010 *** * 0.9.5.4 [20100706] *** june 2010 *** * 0.9.5.3 [20100628] - fixed linux x86_64 compilation (sorry) * 0.9.5.2 [20100626] * - fixed a request parsing bug - applied debian fixes - fixed multiple interpreter sys.argv - improved --chmod-socket - fixed uid 0 SIGHUP - updated nginx and apache modules - updated PSGI, lua and example plugin - fixed --pyargv with python 3.x - improved plugin build system *** may 2010 *** * 0.9.5.1 [20100519] * - fixed paste support - added a new modifier (22) - full support for configuration via environment variables - nginx_string option in nginx module - fix for harakiri without master - backported unladen swallow support for 0.9.6-dev - fixed address space limit detection via getrlimit() - http body buffering implementation - added --prio option (to set priority) - added --post-limit to limit the size of uploads - added --logto option to allow udp logging without daemonizing - applied Gentoo's packagers fixes for build system * 0.9.5 [20100501] * - hook based request/modifier management - plugin support via dlopen - on-the-fly management flag - integrated proxy - logging via udp - improved spooler for cron-like apps - async support - green thread platform (uGreen) on top of the async mode - transparent Erlang integration - embedded snmp agent - nagios mode - improved python 3.x support - improved xml configuration - new build system - address space usage limiting - lot of portability fixes - lot of optimizations and code refactoring *** april 2010 *** * Fourth Maintenance release [20100427] * - backported non-yielding app optimization from 0.9.5 - backported udp logging from 0.9.5 - backported uwsgi_error() from 0.9.5 (no more dumb perror()) - fix a rare (but possible) segmentation fault - added --version - updated apache2 module *** march 2010 *** * Third Maintenance release [20100310] * - fix sendfile on 64bit - include setup.py *** february 2010 *** * Maintenance release * - better support for NetBSD - threading fix for FreeBSD - sendfile portability fixes - new makefiles - example app for testing static file serving - fixes for ROCK_SOLID mode *** january 2010 *** - Integrated Spooler - better error management - long options - clustering functions - experimental lighttpd module - official support for OpenBSD and OpenSolaris - FastFuncs - new functions for embedded module - reliable harakiri - better Makefiles - python threads support in master process - proper timeout handling in apache2 module - endianess fixes all over the place - paste support - Django app for managing and monitoring the uWSGI server - options for changin uid/gid and chrooting when run by root - lot of bugfixes and optimizations *** 20091129 Version 0.9.3 *** - Nginx 0.7.x module - configuration via python module - support (non-standard) for Python 3.x - Twisted client resource adapter - graceful restart of worker processes and hot-plug substitution/upgrade of the uWSGI server - shared memory area to share data between workers/processes - Tomcat handler - support for virtualenv - tons of bugfixes and optimizations *** 20090829 Version 0.9.2 *** - TCP support - configurable internal timeout (socket/poll) - Cherokee handler - code refactoring - Makefiles - customizable harakiri handler (put an harakiri(environ, start_response) function in your wsgi script) - limit requests per worker - a lot of bugfix and optimizations