tornadoweb

tornado: Build Python Web Apps and Async Network Services

Tornado is a Python web framework and asynchronous networking library built on Python's non-blocking I/O model. It is designed for web apps with long-lived connections, including long polling and WebSockets.

Stars
22.2k
Forks
5.6k
Stars, last 29 days
-6
Last commit
3 days ago
Contributors
100+

Our take

Activeregular commits

Health score

63/100

How it is scored
Activity
53
Community
64
Issues
59
Pull requests
76

-6 stars in the last 29 days

  • Merges more pull requests than 80% of the projects we track
  • More contributors than 78% of the projects we track

Tornado is an actively maintained choice for Python teams building connection-heavy web services, but its release cadence and concentrated contributor base deserve attention.

Good fit if

  • Your Python application needs long polling, WebSockets, or other long-lived connections.
  • You want a framework that combines web request handling with asynchronous networking.
  • You can work with a project that has regular commits and merges but no recent release.

Look elsewhere if

  • Your team needs frequent published releases as its primary signal of delivery.
  • You want to avoid relying on a project where most contributions come from one person.
  • Your application does not need asynchronous networking or long-lived connections.
All health signals
Last commit2026-10-21 (3 days ago)
Commits, last 90 days100+
Releases, last 12 months0
Contributors100+ (top contributor: 81% of commits)
Issues closed, last 90 days6+ (typically closed in 3 days)
Pull requests merged, last 90 days67 (typically merged in 0 days)
Project age17 years

Checked on 2026-10-25 with the GitHub API.

Project history

Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

22,163

Forks

5,605

Change since Nov 4, 2026: 0 stars·+3 forks

Overview

Tornado is a Python web framework and asynchronous networking library built around non-blocking network I/O. Originally developed at FriendFeed, it addresses the challenge of serving many open connections, making it useful for applications that keep connections alive rather than handling only short request-response exchanges.

It combines web request handling with networking tools for long polling, WebSockets, and other persistent-connection patterns. The repository is actively maintained, though recent activity is concentrated among a small share of contributors and there have been no releases in over a year.

Key Features

  • Define web applications with URL routes and request handlers.
  • Use non-blocking network I/O to support many simultaneous open connections.
  • Build applications around long polling and WebSockets.
  • Write asynchronous application code using Python's asyncio integration.
  • Run a basic web server by creating an application and listening on a port.

Use Cases

  • A web team can build Python services that need to keep many client connections open.
  • Developers can implement real-time chat or messaging features using WebSockets.
  • A service can use long polling when clients need updates over persistent request connections.
  • Python developers can combine request handling and asynchronous networking in one framework.

What you need

Detected in the repository

  • Python (from pyproject.toml)
  • Automated checks on GitHub Actions

License in plain words

Apache-2.0permissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the license, the NOTICE file and a note of your changes
  • Share your changes: no
  • Includes an explicit patent grant from the contributors:

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Tornado requires Python. Start with the README for a minimal application example, then consult the official documentation for setup and usage details.

Alternatives

  • fastapi: FastAPI focuses on typed HTTP APIs with validation and generated OpenAPI docs, while Tornado provides a lower-level asynchronous web and networking framework.
  • masonite: Masonite is a full-stack framework with integrated tools for common web tasks, while Tornado centers on non-blocking I/O and long-lived connections.
ProjectLanguageLicenseStarsStatus
tornadoPythonApache-2.022.2kActive
fastapiPythonMIT103kActive
masonitePythonMIT2.4kQuiet

Considerations

There have been no releases in over a year, despite regular recent commits and pull request merges. Contributor activity is concentrated, and only a small number of issues were closed in the measured recent period, although the reported median time to close was short. The repository metadata does not report tests, so verify the testing and validation setup that matters to your team before adopting it.

Found this useful?

Share it with someone who would like tornado.

Comparisons