HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
tornadoweb
tornado
Python2009–2025
tornadoweb / tornado

tornado

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

44Distinct people
51Mentions
3Explicit recommenders
22.2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

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

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Companies like Twitter, Facebook, etc, regardless of what technology they invent that is of use for the public, often healthily contribute to the open source ecosystem. Twitter…

scrollaway used a recommendation phrase. 3 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year51 dated mentions

Observed mentions: 2009-09-10 17:14:22 UTC to 2025-02-12 21:18:56 UTC.

0369122009-01-01 00:00:00 UTC to 2010-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments20092010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 12 mentions; 0 submissions, 12 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20092009-01-01 00:00:00 UTC2010-01-01 00:00:00 UTC1019
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC303
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC12012
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC615
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC000
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC202
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC404
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC303
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC211
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC422
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Tornado Web Server 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. Hello, world Here is a simple "Hello, world" example web app for Tornado: 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() app.listen(8888) await asyncio.Event().wait() if __name__ == "__main__": asyncio.run(main()) This example does not use any of Tornado's asynchronous features; for that see this simple chat room. Documentation Documentation and links to additional resources are available at https://www.tornadoweb.org
Read the full README on GitHub

What Hacker News says

51 sources
I don't think this is about a niche but rather a broader need for lists, more specifically, integrated lists from users. Pinterest, for example, is built around lists, Amazon has wishlists, IMDb[1] provides movie rankings, etc. From a data portability perspective, the real challenge is getting users to connect all these platforms to a kind of unified list, making it accessible for queries, machine learning, or other applications. This, in my view, is a traction problem rather than a technical one, independent of whether it justifies a business. FriendFeed[2] was a very interesting project where users could connect their profiles with many services and their followers saw their updates. It seems their Tornado web server keeps getting updated [3]. More than a decade ago, I explored some of these ideas [4][5], conceptualizing a directed acyc
Read the rest
lic graph (DAG) model where data operations could be performed at a global level, dynamically recalculating like a spreadsheet. Going to more complex topics there are resources such as differential dataflows [6]. [1] My movies ranking: https://www.imdb.com/user/ur0601133/ratings/ [2] https://en.wikipedia.org/wiki/FriendFeed [3] https://github.com/tornadoweb/tornado [4] https://blog.databigbang.com/ideas-egont-a-web-orchestration... [5] https://blog.databigbang.com/egont-part-ii/ [6] https://timelydataflow.github.io/differential-dataflow/intro...
In Most-Watched Software Engineering Talks of 2024
Read the rest
In Backdoor attempt on Exolabs GitHub repo through an innocent looking PR
Does 10 years ago count as "until recently"? Below is Tornado, an async-based web server. https://github.com/tornadoweb/tornado/tree/branch1.2/tornado That's the earliest I could find off the top of my head - But the other comment responding to you found an even earlier one where they mention the "select" feature that was added sometime around 1998 (22 years ago). The twisted async networking library seems to have been released/started at least 13-14 years ago as well. I think we all (myself included) kinda forget or underestimate how old Python really is.
In Optimizing Your Web App 100x Is Like Adding 99 Servers
I’m afraid I don’t. This was in fact why I stopped hosting a mail server for friends, way back when. I realised that if most of them put their gmail address in ~/.forward, any spam they received on their account on my domain, gmail would count towards my domain / ip instead of the original sender. This is a fundamental flaw with current email implementations; there is no equivalent to something like the “trusted downstream proxies” list.[1] I always wondered why gmail wouldn’t have a (per account) setting to say: “I am forwarding mail from this host / domain / address”, with corresponding trust of Received: headers chain. If I could then add a header in forwarded mails requiring that to be set, somehow, then we could avoid this SPF / DMARC problem entirely. The fundamentals are there (received: headers and DKIM). All we need is some last
Read the rest
mile config :( But it would promote decentralisation, so I’m not holding my breath. [1] random search result of such an implementation: https://github.com/tornadoweb/tornado/pull/1864/files
In Why you shouldn't jump on the SPF bandwagon (2005)
I see this pattern all the time on GitHub. A promising project starts to catch a lot of stars. Issues start piling up, and the developer no longer looks forward to working on the project because of they have a boatload of issues to deal with first. An issue is much like an email. Closing an issue requires communicating with (sometimes unreasonable) people. Furthermore, when issues start piling up, critical issues are hidden alongside less important ones making it even more difficult to prioritize. One way of dealing with things is to maintain inbox zero. Take action right away - delegate, archive or save for a later date. This won't work forever though as your project's userbase grows. Two high quality libraries with benevolent dictators handle issues very differently: Peewee (coleifer): https://github.com/coleifer/peewee/issues Tornado (
Read the rest
In The sad graph of software death

Showing the 15 most recent of 51 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.