# Introduction

Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.

Tornado can be roughly divided into three major components:

- A web framework (including `RequestHandler` which is subclassed to create web applications, and various supporting classes).

- Client- and server-side implementions of HTTP (`HTTPServer` and `AsyncHTTPClient`).

- An asynchronous networking library including the classes `IOLoop` and `IOStream`, which serve as the building blocks for the HTTP components and can also be used to implement other protocols.

The Tornado web framework and HTTP server together offer a full-stack alternative to WSGI. While it is possible to use the Tornado HTTP server as a container for other WSGI frameworks (`WSGIContainer`), this combination has limitations and to take full advantage of Tornado you will need to use Tornado’s web framework and HTTP server together.