Tornado is an open source Python web framework, scalable web server, and asynchronous networking library which has been in development from 2009.
By using non-blocking network I/O, Tornado specializes in handling thousands of simultaneous connections and real-time services. This makes it a good fit for long polling, WebSockets, and other applications that need a long-lived connection to each user.
The framework is designed to be simple, like web.py or Bottle, without some of the more complex configuration of web frameworks like Django. A Tornado web application generally consists of one or more ‘.RequestHandler’ subclasses, an ‘.Application’ object which routes incoming requests to handlers, and a ”main()” function to start the server.
Tornado has four main components:
- Web framework.
- Client- and server-side implementations of HTTP – a non-blocking, single-threaded TCP server.
- Asynchronous networking library including the classes IOLoop and IOStream, which serve as the building blocks for the HTTP components and can also be used to implement other protocols.
- IOLoop – an I/O event loop for non-blocking sockets. In addition to I/O events, IOLoop can also schedule time-based events.
- IOStream – provides utility classes to write to and read from non-blocking files and sockets.
- Coroutine library (tornado.gen) – allows asynchronous code to be written in a more straightforward way than chaining callbacks.
Features include:
- Good performance.
- To minimize the cost of concurrent connections, Tornado uses a single-threaded event loop. This means that all application code should aim to be asynchronous and non-blocking because only one operation can be active at a time.
- Supports non-blocking, asynchronous web / networking application development.
- Built-in multi-process mode to start several processes simultaneously.
- Native Websocket Support
- Support for social logins.
- Built in options/config file utilities.
- Simple, fast, and flexible templating language. Tornado can also be used with any other Python template language. Tornado templates are translated directly to Python.
- Routing.
- Supplied with many useful compact utilities that make writing Python code fun.
- Libraries based on asyncio can be mixed relatively seamlessly with those using Tornado.
- Cookie utilities.
- Request parsing.
- Supports Python 2.7.9+ and 3.4+.
- Offers an alternative to the Python Web Server Gateway.
Website: www.tornadoweb.org
Support: GitHub, Wiki, Mailing List (Announcement)
Developer: The Tornado Authors
License: Apache License 2.0
Tornado is written in Python. Learn Python with our recommended free books and free tutorials.
Return to Python Application Servers | Return to Python Web Frameworks
Popular series | |
---|---|
The largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions. | |
Hundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information. | |
The Big List of Active Linux Distros is a large compilation of actively developed Linux distributions. | |
Replace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS. | |
Awesome Free Linux Games Tools showcases a series of tools that making gaming on Linux a more pleasurable experience. This is a new series. | |
Machine Learning explores practical applications of machine learning and deep learning from a Linux perspective. We've written reviews of more than 40 self-hosted apps. All are free and open source. | |
New to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux. | |
Alternatives to popular CLI tools showcases essential tools that are modern replacements for core Linux utilities. | |
Essential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users. | |
Linux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine. | |
Surveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal. | |
Saving Money with Linux looks at how you can reduce your energy bills running Linux. | |
Home computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum. | |
Now and Then examines how promising open source software fared over the years. It can be a bumpy ride. | |
Linux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged. | |
Linux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery. | |
Getting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers. | |
Best Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series. | |
These best free books accelerate your learning of every programming language. Learn a new language today! | |
These free tutorials offer the perfect tonic to our free programming books series. | |
Linux Around The World showcases usergroups that are relevant to Linux enthusiasts. Great ways to meet up with fellow enthusiasts. | |
Stars and Stripes is an occasional series looking at the impact of Linux in the USA. |