Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

140 lines (107 sloc) 5.161 kB
.. title:: Tornado Web Server
.. meta::
:google-site-verification: g4bVhgwbVO1d9apCUsT-eKlApg31Cygbp8VGZY8Rf0g
|Tornado Web Server|
.. |Tornado Web Server| image:: tornado.png
:alt: Tornado Web Server
`Tornado <>`_ is an open source version of
the scalable, non-blocking web server and tools that power `FriendFeed
<>`_. The FriendFeed application is written
using a web framework that looks a bit like `
<>`_ or `Google's webapp
<>`_, but
with additional tools and optimizations to take advantage of the
underlying non-blocking infrastructure.
The framework is distinct from most mainstream web server frameworks
(and certainly most Python frameworks) because it is non-blocking and
reasonably fast. Because it is non-blocking and uses `epoll
or ``kqueue``, it can handle thousands of simultaneous standing
connections, which means it is ideal for real-time web services. We
built the web server specifically to handle FriendFeed's real-time
features — every active user of FriendFeed maintains an open
connection to the FriendFeed servers. (For more information on scaling
servers to support thousands of clients, see The `C10K problem
Upgrading from Tornado 1.x
Tornado 2.0 introduces several potentially backwards-incompatible
changes, including in particular automatic escaping of template
output. Users who are upgrading from Tornado 1.x should see the
:doc:`version 2.0 release notes <releases/v2.0.0>` for
information about backwards compatibility.
Quick links
* :doc:`Documentation <documentation>`
* |Download current version|: :current_tarball:`z` (:doc:`release notes <releases>`)
* `Source (github) <>`_
* `Mailing list <>`_
* `Wiki <>`_
.. |Download current version| replace:: Download version |version|
Hello, world
Here is the canonical "Hello, world" example app for Tornado::
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
if __name__ == "__main__":
See the :doc:`Tornado documentation <documentation>` for a
detailed walkthrough of the framework.
**Automatic installation:** Tornado is listed in `PyPI
<>`_ and can be installed with
``pip`` or ``easy_install``. Note that the source distribution
includes demo applications that are not present when Tornado is
installed in this way, so you may wish to download a copy of the
source tarball as well.
**Manual installation:** Download :current_tarball:`z`:
.. parsed-literal::
tar xvzf tornado-|version|.tar.gz
cd tornado-|version|
python build
sudo python install
The Tornado source code is `hosted on GitHub
<>`_. On Python 2.6 and 2.7, it is
also possible to simply add the tornado directory to your
``PYTHONPATH`` instead of building with ````, since the
standard library includes ``epoll`` support.
**Prerequisites:** Tornado runs on Python 2.5, 2.6, 2.7 and 3.2.
* On Python 2.6 and 2.7, there are no dependencies outside the Python
standard library, although `PycURL
<>`_ (version 7.18.2 or higher
required; version 7.21.1 or higher recommended) may be used if
* On Python 2.5, PycURL is required, along with `simplejson
<>`_ and the Python
development headers (typically obtained by installing a package
named something like ``python-dev`` from your operating system).
* On Python 3.2, the `distribute
<>`_ package is required.
Note that Python 3 support is relatively new and may have bugs.
**Platforms:** Tornado should run on any Unix-like platform, although
for the best performance and scalability only Linux and BSD (including
BSD derivatives like Mac OS X) are recommended.
Discussion and support
You can discuss Tornado and report bugs on `the Tornado developer
mailing list <>`_. Links
to additional resources can be found on the `Tornado wiki
Tornado is one of `Facebook's open source technologies
<>`_. It is available under
the `Apache License, Version 2.0
This web site and all documentation is licensed under `Creative
Commons 3.0 <>`_.
.. toctree::
Jump to Line
Something went wrong with that request. Please try again.