Tornado logo

Tornado

A Python web framework and asynchronous networking library, originally developed at FriendFeed
238
199
+ 1
151

What is Tornado?

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 is a tool in the Frameworks (Full Stack) category of a tech stack.
Tornado is an open source tool with 18.8K GitHub stars and 5.1K GitHub forks. Here鈥檚 a link to Tornado's open source repository on GitHub

Who uses Tornado?

Companies
79 companies reportedly use Tornado in their tech stacks, including Facebook, Zalando, and TravelPerk.

Developers
145 developers on StackShare have stated that they use Tornado.

Tornado Integrations

Why developers like Tornado?

Here鈥檚 a list of reasons why companies and developers use Tornado
Tornado Reviews

Here are some stack decisions, common use cases and reviews by companies and developers who chose Tornado in their tech stack.

Dmitry Mukhin
Dmitry Mukhin
CTO at Uploadcare | 20 upvotes 77.9K views
atUploadcareUploadcare
Tornado
Tornado
Python
Python
Amazon EC2
Amazon EC2
AWS Elastic Load Balancing (ELB)
AWS Elastic Load Balancing (ELB)

The 350M API requests we handle daily include many processing tasks such as image enhancements, resizing, filtering, face recognition, and GIF to video conversions.

Tornado is the one we currently use and aiohttp is the one we intend to implement in production in the near future. Both tools support handling huge amounts of requests but aiohttp is preferable as it uses asyncio which is Python-native. Since Python is in the heart of our service, we initially used PIL followed by Pillow. We kind of still do. When we figured resizing was the most taxing processing operation, Alex, our engineer, created the fork named Pillow-SIMD and implemented a good number of optimizations into it to make it 15 times faster than ImageMagick

Thanks to the optimizations, Uploadcare now needs six times fewer servers to process images. Here, by servers I also mean separate Amazon EC2 instances handling processing and the first layer of caching. The processing instances are also paired with AWS Elastic Load Balancing (ELB) which helps ingest files to the CDN.

See more
Node.js
Node.js
Python
Python
MySQL
MySQL
Memcached
Memcached
nginx
nginx
RabbitMQ
RabbitMQ
Redis
Redis
Django
Django
Tornado
Tornado
Varnish
Varnish
HAProxy
HAProxy

Around the time of their Series A, Pinterest鈥檚 stack included Python and Django, with Tornado and Node.js as web servers. Memcached / Membase and Redis handled caching, with RabbitMQ handling queueing. Nginx, HAproxy and Varnish managed static-delivery and load-balancing, with persistent data storage handled by MySQL.

See more
Jelena Dedovic
Jelena Dedovic
Software Engineer | 5 upvotes 66.3K views
Tornado
Tornado
asyncio
asyncio
AIOHTTP
AIOHTTP
PostgreSQL
PostgreSQL
MSSQL
MSSQL

Investigating Tortoise ORM and GINO ORM...

I need to introduce some async ORM with the current stack: Tornado with asyncio loop, AIOHTTP, with PostgreSQL and MSSQL. This project revolves heavily around realtime and due to the realtime requirements, blocking during database access is not acceptable.

Considering that these ORMs are both young projects, I wondered if anybody had some experience with similar stack and these async ORMs?

See more
Anish Gupta
Anish Gupta
Director at Banyan | 1 upvotes 7.4K views
atBanyanBanyan
Tornado
Tornado

Tornado with Async/Await coroutines provided in Python 3.5 make up for an excellent stack for a micro-service. Tornado

See more
Tim Joseph Dumol
Tim Joseph Dumol
Lead Software Architect at Kalibrr | 1 upvotes 7.4K views
atKalibrrKalibrr
Tornado
Tornado

We use Tornado as our websockets server, using SockJS (an alternative to socket.io). Tornado

See more
osullivj
osullivj
Founder at SpreadServe | 1 upvotes 7.4K views
atSpreadServeSpreadServe
Tornado
Tornado

SpreadServe's RealTimeWebServer is built in Tornado. Spreadsheets loaded into SpreadServeEngine instances are projected into browsers using Tornado. Server side recalcs are pushed to the browser using web sockets. Tornado

See more

Tornado Alternatives & Comparisons

What are some alternatives to Tornado?
Node.js
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
ASP.NET
.NET is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
Rails
Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.
Django
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Laravel
It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.
See all alternatives

Tornado's Followers
199 developers follow Tornado to keep up with related blogs and decisions.
Yogesh Rewale
Jean Luc Niyonzima
Shailesh Kumar
Dmitry Meyerson
Dmitry Meyerson
shubhamhapse
Arthur Khazbulatov
NgHoangDat
aryan patel
arpit-digi