index.html 4.2 KB
Newer Older
B
Bret Taylor 已提交
1 2 3
{% extends "base.html" %}

{% block body %}
C
typo  
Casey 已提交
4
  <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>
B
Bret Taylor 已提交
5 6 7 8
  <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">epoll</a>, 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>
  <p>See the <a href="/documentation">Tornado documentation</a> for a detailed walkthrough of the framework.</p>

  <h2>Download and install</h2>
9 10
  <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>.  If you do not already have libcurl installed you may need to install it separately; see the prerequisites section below.  Note that the source distribution includes demo applications that are not present when Tornado is installed using <code>pip</code> or <code>easy_install</code></p>

B
Ben Darnell 已提交
11 12 13
  <p><b>Manual installation:</b> Download <a href="http://github.com/downloads/facebook/tornado/tornado-1.2.1.tar.gz">tornado-1.2.1.tar.gz</a></p>
  <pre><code>tar xvzf tornado-1.2.1.tar.gz
cd tornado-1.2.1
B
Bret Taylor 已提交
14 15
python setup.py build
sudo python setup.py install</code></pre>
B
Ben Darnell 已提交
16
  <p>The Tornado source code is <a href="http://github.com/facebook/tornado">hosted on GitHub</a>.  On Python 2.6+, it is also possible to simply add the tornado directory to your <code>PYTHONPATH</code> instead of building with <code>setup.py</code>, since the standard library includes <code>epoll</code> support.</p>
B
Bret Taylor 已提交
17 18

  <h3>Prerequisites</h3>
19 20
  <p>Tornado has been tested on Python 2.5, 2.6, and 2.7. To use all of the features of Tornado, you need to have <a href="http://pycurl.sourceforge.net/">PycURL</a> (version 7.18.2 or higher) and (for Python 2.5 only) <a href="http://pypi.python.org/pypi/simplejson/">simplejson</a> installed (Python 2.6 includes JSON support in the standard library so simplejson is not needed). Complete installation instructions for Mac OS X and Ubuntu are included below for convenience.</p>
  <p style="font-weight:bold">Mac OS X 10.6 (Python 2.6+)</p>
B
Ben Darnell 已提交
21 22
  <pre><code>sudo easy_install setuptools pycurl</code></pre>

23
  <p style="font-weight:bold">Ubuntu Linux (Python 2.6+)</p>
B
Ben Darnell 已提交
24 25 26
  <pre><code>sudo apt-get install python-pycurl</code></pre>

  <p style="font-weight:bold">Ubuntu Linux (Python 2.5)</p>
27
  <pre><code>sudo apt-get install python-dev python-pycurl python-simplejson</code></pre>
B
Bret Taylor 已提交
28 29 30

  <h2>Hello, world</h2>
  <p>Here is the canonical &quot;Hello, world&quot; example app for Tornado:</p>
31
  <pre><code>import tornado.ioloop
B
Bret Taylor 已提交
32 33 34 35 36 37 38 39 40 41 42
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
43
    application.listen(8888)
B
Bret Taylor 已提交
44 45 46 47
    tornado.ioloop.IOLoop.instance().start()</code></pre>
  <p>See the <a href="/documentation">Tornado documentation</a> for a detailed walkthrough of the framework.</p>

  <h2>Discussion and support</h2>
48
  <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="http://github.com/facebook/tornado/wiki/Links">Tornado wiki</a>.
B
Bret Taylor 已提交
49 50

{% end %}