tornado
Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.
Install
tornado on PyPI
pip
pip install tornadouv
uv add tornadopoetry
poetry add tornadoPackage facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 6 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: tornado-6.5.8-cp39-abi3-macosx_10_9_universal2.whl; tornado-6.5.8-cp39-abi3-macosx_10_9_x86_64.whl; tornado-6.5.8-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; tornado-6.5.8-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; tornado-6.5.8-cp39-abi3-musllinux_1_2_aarch64.whl; tornado-6.5.8-cp39-abi3-musllinux_1_2_x86_64.whl; tornado-6.5.8-cp39-abi3-win32.whl; tornado-6.5.8-cp39-abi3-win_amd64.whl; tornado-6.5.8-cp39-abi3-win_arm64.whl
About tornado
from the package's own PyPI description — quoted content, verbatim
Tornado Web Server
.. image:: https://badges.gitter.im/Join%20Chat.svg :alt: Join the chat at https://gitter.im/tornadoweb/tornado :target: https://gitter.im/tornadoweb/tornado?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
Tornado <http://www.tornadoweb.org> is a Python web framework and
asynchronous networking library, originally developed at FriendFeed
<http://friendfeed.com>. By using non-blocking network I/O, Tornado
can scale to tens of thousands of open connections, making it ideal for
long polling <http://en.wikipedia.org/wiki/Push_technology#Long_Polling>,
WebSockets <http://en.wikipedia.org/wiki/WebSocket>, and other
applications that require a long-lived connection to each user.
Hello, world
Here is a simple "Hello, world" example web app for Tornado:
.. code-block:: python
import asyncio
import tornado
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
])
async def main():
app = make_app()...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Tornado is a Python web framework and asynchronous networking library that handles high-concurrency applications through non-blocking I/O, enabling long-lived connections for WebSockets, long polling, and real-time features.
Medium install friction with pre-built wheels across major platforms (macOS, Linux, Windows, ARM). Active maintenance with a release 6 days ago indicates solid ongoing support.
Apache-2.0 is a permissive license allowing commercial use, modification, and distribution with minimal restrictions—suitable for most production and proprietary projects.
Usage
pip install tornado==6.5.8
import tornado.web
import asyncio
class Handler(tornado.web.RequestHandler):
def get(self):
self.write("Hello")
app = tornado.web.Application([(r"/", Handler)])
app.listen(8888)
asyncio.run(asyncio.Event().wait())
Requires Python 3.9 or later; no runtime dependencies but benefits from asyncio familiarity.
Verdict: Tornado is a mature, actively maintained web framework well-suited for high-concurrency applications. Zero known vulnerabilities, permissive licensing, and broad platform support make it a reliable choice for production async networking workloads.
Needs verification
- Repository star count and commit recency not provided in fact sheet; maintenance signals rely on release recency and active status only.
- Whether pre-built wheels include all optional C extensions or if some features require compilation.
- Performance characteristics and scaling limits under specific workload patterns.
Similar packages
permissive · top 1,000 on PyPI
websocketspermissive · top 100 on PyPI
websocket-clientpermissive · top 1,000 on PyPI
langgraph-sdkpermissive · top 1,000 on PyPI
python-telegram-botcopyleft · top 1,000 on PyPI
aiohttppermissive · top 100 on PyPI
uvicornpermissive · top 100 on PyPI
simple-websocketpermissive · top 1,000 on PyPI
realtimepermissive · top 1,000 on PyPI
APSchedulerpermissive · top 1,000 on PyPI