Tornado now depends on the backports.ssl_match_hostname when
running on Python 2. This will be installed automatically when using pip
or easy_install
Tornado now includes an optional C extension module, which greatly improves
performance of websockets. This extension will be built automatically
if a C compiler is found at install time.
New modules
The tornado.platform.asyncio module provides integration with the
asyncio module introduced in Python 3.4 (also available for Python
3.3 with pip install asyncio).
TracebackFuture now accepts a timeout keyword argument (although
it is still incorrect to use a non-zero timeout in non-blocking code).
tornado.curl_httpclient
tornado.curl_httpclient now works on Python 3 with the
soon-to-be-released pycurl 7.19.3, which will officially support
Python 3 for the first time. Note that there are some unofficial
Python 3 ports of pycurl (Ubuntu has included one for its past
several releases); these are not supported for use with Tornado.
tornado.httpclient.HTTPRequest now uses property setters so that
setting attributes after construction applies the same conversions
as __init__ (e.g. converting the body attribute to bytes).
Malformed x-www-form-urlencoded request bodies will now log a warning
and continue instead of causing the request to fail (similar to the existing
handling of malformed multipart/form-data bodies. This is done mainly
because some libraries send this content type by default even when the data
is not form-encoded.
Fix some error messages for unix sockets (and other non-IP sockets)
IOLoop now frees callback objects earlier, reducing memory usage
while idle.
IOLoop will no longer call logging.basicConfig if there is a handler
defined for the root logger or for the tornado or tornado.application
loggers (previously it only looked at the root logger).
New application setting default_handler_class can be used to easily
set up custom 404 pages.
New application settings autoreload, compiled_template_cache,
static_hash_cache, and serve_traceback can be used to control
individual aspects of debug mode.
New methods RequestHandler.get_query_argument and
RequestHandler.get_body_argument and new attributes
HTTPRequest.query_arguments and HTTPRequest.body_arguments allow access
to arguments without intermingling those from the query string with those
from the request body.
It is now possible to specify handlers by name when using the
tornado.web.URLSpec class.
Application now accepts 4-tuples to specify the name parameter
(which previously required constructing a tornado.web.URLSpec object
instead of a tuple).
Fixed an incorrect error message when handler methods return a value
other than None or a Future.
Exceptions will no longer be logged twice when using both @asynchronous
and @gen.coroutine