tornado/website/templates/index.html

68 lines
4.9 KiB
HTML

{% extends "base.html" %}
{% block body %}
<p><a href="http://www.tornadoweb.org/">Tornado</a> is an open source version of the scalable, non-blocking web server and tools that power <a href="http://friendfeed.com/">FriendFeed</a>. The FriendFeed application is written using a web framework that looks a bit like <a href="http://webpy.org/">web.py</a> or <a href="http://code.google.com/appengine/docs/python/tools/webapp/">Google's webapp</a>, but with additional tools and optimizations to take advantage of the underlying non-blocking infrastructure.</p>
<p>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 <a href="http://www.kernel.org/doc/man-pages/online/pages/man4/epoll.4.html"><code>epoll</code></a> or <code>kqueue</code>, 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 &mdash; 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 <a href="http://www.kegel.com/c10k.html">C10K problem</a>.)</p>
<h2>Upgrading from Tornado 1.x</h2>
<p>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
<a href="/documentation/releases/v2.0.0.html">release notes</a> for
information about backwards compatibility.</p>
<h2>Quick links</h2>
<ul>
<li><a href="/documentation/index.html">Documentation</a></li>
<li><a href="https://github.com/downloads/facebook/tornado/tornado-{{version}}.tar.gz">Download version {{version}}</a> (<a href="/documentation/releases.html">release notes</a>)</li>
<li><a href="https://github.com/facebook/tornado">Source (github)</a></li>
<li><a href="http://groups.google.com/group/python-tornado">Mailing list</a></li>
<li><a href="https://github.com/facebook/tornado/wiki/Links">Wiki</a></li>
</ul>
<h2>Hello, world</h2>
<p>Here is the canonical &quot;Hello, world&quot; example app for Tornado:</p>
<pre><code>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__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()</code></pre>
<p>See the <a href="/documentation/index.html">Tornado documentation</a> for a detailed walkthrough of the framework.</p>
<h2>Installation</h2>
<p><b>Automatic installation:</b> Tornado is listed in <a href="http://pypi.python.org/pypi/tornado">PyPI</a> and can be installed with <code>pip</code> or <code>easy_install</code>. 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.</p>
<p><b>Manual installation:</b> Download <a href="https://github.com/downloads/facebook/tornado/tornado-{{version}}.tar.gz">tornado-{{version}}.tar.gz</a></p>
<pre><code>tar xvzf tornado-{{version}}.tar.gz
cd tornado-{{version}}
python setup.py build
sudo python setup.py install</code></pre>
<p>The Tornado source code is <a href="https://github.com/facebook/tornado">hosted on GitHub</a>. It is also possible to simply add the tornado directory to your <code>PYTHONPATH</code> instead of building with <code>setup.py</code>.
<p><b>Prerequisites:</b> Tornado runs on Python 2.6+ and 3.2+. Both CPython and PyPy are supported. There are no required dependencies outside the Python standard library, although unittest2 is required to run Tornado's unittest suite on Python 2.6. Certain optional features require additional third-party modules:
<ul>
<li>tornado.curl_httpclient needs <a href="http://pycurl.sourceforge.net/">PycURL</a> (version 7.18.2 or higher required; version 7.21.1 or higher recommended)</li>
<li>Multithreading support requires the concurrent.futures module, which is in the standard library for Python 3.2+ and available <a href="http://pypi.python.org/pypi/futures">on pypi</a> for older versions.</li>
</ul></p>
<p><b>Platforms:</b> 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.</p>
<h2>Discussion and support</h2>
<p>You can discuss Tornado and report bugs on <a href="http://groups.google.com/group/python-tornado">the Tornado developer mailing list</a>. Links to additional resources can be found on the <a href="https://github.com/facebook/tornado/wiki/Links">Tornado wiki</a>.
{% end %}