finds.dev← search

// the find

tornadoweb/tornado

★ 22,164 · Python · Apache-2.0 · updated Oct 2026

Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.

Tornado is a non-blocking Python web framework and networking library built for long-lived connections — long polling, WebSockets, lots of concurrent open sockets. It's for people who need a server that handles thousands of simultaneous connections without spawning a process per connection, or who are maintaining an older codebase that already depends on it.

The IOLoop/coroutine model predates asyncio and has been battle-tested at FriendFeed/Facebook scale for over a decade, so the async primitives (locks, queues, gen) are solid and well-documented. It ships its own HTTP client and server, templating, auth helpers, and WebSocket support in one package instead of requiring a pile of third-party pieces. Test suite and docs are extensive, and the release notes going back to v1.0.0 make upgrade paths traceable.

It now mostly just wraps asyncio under the hood, so you're adopting Tornado's own APIs (RequestHandler, Application, its own coroutine idioms) instead of the asyncio/ASGI ecosystem everything else has converged on — no native ASGI support means it doesn't drop into Starlette/FastAPI-style tooling or uvicorn. Community momentum has clearly shifted to FastAPI/Starlette for new projects, so ecosystem packages, middleware, and Stack Overflow answers skew old. The routing and dependency-injection story is much more manual than modern frameworks — no built-in request validation, OpenAPI generation, or typed request/response models, you're writing that yourself.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →