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

  •        34

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. This example does not use any of Tornado's asynchronous features; for that see this simple chat room.



Related Projects

Introduction-to-Tornado - This is the sample code for the Introduction to Tornado book, published by O'Reilly Media

  •    Python

Tornado is a scalable, non-blocking web server and web application framework written in Python. It is also light-weight to deploy, fun to write for, and incredibly powerful. Tornado was written with performance in mind, aiming to solve the C10k problem, so by design it’s an extremely high-performance framework. It’s also packed with handy tools for dealing with social networks, user authentication, and all sorts of asynchronous fun. In this book, we’ll cover the basics of the Tornado framework, starting with the features that make it so great, and working our way towards some real-life examples. We’ll cover the best practices for implementation and deployment, as well as a sampling of uses for the technology. These are the complete code examples for the chapters in the O'Reilly book of the same name, with complete application examples that you can run on your own. These shouldn't require anything beyond the basic install of Tornado and Python 2.6+, except for the MongoDB examples (which obviously require MongoDB, as well as pymongo).

tornado-celery - Non-blocking Celery client for Tornado

  •    Python

NOTE: Currently callbacks only work with AMQP and Redis backends. To use the Redis backend, you must install tornado-redis.

momoko - Wraps (asynchronous) Psycopg2 for Tornado.

  •    Python

Wraps (asynchronous) Psycopg2 for Tornado.

asyncmongo - An asynchronous library for accessing mongo with tornado.ioloop

  •    Python

AsyncMongo is an asynchronous library for accessing mongo which is built on the tornado ioloop. asyncmongo syntax strives to be similar to pymongo.

gino - GINO Is Not ORM - a Python asyncio ORM on SQLAlchemy core.

  •    Python

GINO - GINO Is Not ORM - is a lightweight asynchronous ORM built on top of SQLAlchemy core for Python asyncio. Now (early 2018) GINO supports only one dialect asyncpg. There are a few tasks in GitHub issues marked as help wanted. Please feel free to take any of them and pull requests are greatly welcome.

tornado-boilerplate - A standard layout for Tornado apps

  •    Python

tornado-boilerplate is an attempt to set up an convention for Tornado app layouts, to assist in writing utilities to deploy such applications. A bit of convention can go a long way. This app layout is the one assumed by buedafab.

tornado-production-skeleton - Simple example of a Tornado app in production

  •    Python

This is a skeletal example of one way to run a Tornado application in production. It currently covers running the application under Supervisor. Future additions may include automating initial setup and deploying new code (e.g. with Fabric) and running multiple processes behind a proxy (e.g. nginx). This is our application; it's just the chat demo from the Tornado distribution.

continuation - A compiler for JavaScript asynchronous Continuation-Passing Style transformation

  •    Javascript

Continuation.js is a compiler for Continuation-Passing Style transformation, which simplifies asynchronous JavaScript programming. It translates slightly flavored JavaScript syntax into standard JavaScript, so it can be also called a "translator". Continuation.js introduces a virtual function cont, which allow you to write continuation-passing style code (or asynchronous callback style code) far easier. cont is not a actual function, but a mark with the same syntax to function calls in JavaScript. By using Continuation.js you can write asynchronous control flows like flat threaded code, and it compiles it into continuation-passing style code. The code above is flatted by using the virtual function cont. Control flow must "wait" for the return of asynchronous function call fs.readFile. Parameters in the argument list of cont will be set after it returns. "Return" here is a little confusing because in an asynchronous function "return" means callback function called, not "return" in the literal sense. An asynchronous function usually returns immediately (by encountering return statement or the end of the function scope) while the callback function could be called later. You can be understood as all the statements after cont until the end of the function are the callback function of the asynchronous function call. The code feels like threaded code, but it is still asynchronous while executing.

pypress-tornado - pypress rework by tornado

  •    Javascript

pypress rework by tornado

django-tornado-demo - Demo app for django and tornado in one process

  •    Python

Demo app for django and tornado in one process

Tornado - Non-blocking Web Server powers FriendFeed

  •    Python

Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. The framework is distinct from most mainstream web server frameworks (and certainly most Python frameworks) because it is non-blocking and reasonably fast. Because it is non-blocking and uses epoll, it can handle thousands of simultaneous standing connections, which means it is ideal for real-time web services. Tornado is one of Facebook's open source technologies.

torndb - A lightweight wrapper around MySQLdb. Originally part of the Tornado framework.

  •    Python

Torndb is a simple wrapper around MySQLdb that originally appeared in Tornado ( It is being moved into a separate package for Tornado 3.0. Torndb does not support Python 3, or any database drivers other than MySQLdb or pymysql.

sockjs-tornado - WebSocket emulation - Python server

  •    Python

SockJS-tornado is a Python server side counterpart of SockJS-client browser library running on top of Tornado framework. (Take look at examples for a complete version).

tornadio - Python 0.6 server implementation on top of Tornado framework

  •    Python

This is implementation of the Socket.IO realtime transport library on top of the Tornado framework. There's a library which already implements Socket.IO integration using Tornado framework - SocketTornad.IO, but it was not finished, has several known bugs and not very well structured.

tornadio2 - Python server implementation on top of Tornado framework

  •    Python

Unfortunately, Socket.IO 0.8 branch is abandoned, there are huge amount of bugs and nothing getting fixed. I would suggest to look at alternative options, for example SockJS <>. There's sockjs-tornado <> too. I don't plan to support TornadIO2 anymore, assuming that parent library is no longer maintained. If you still want to try Socket.IO 0.8.x with Python, TornadIO2 is quite stable and used in production.

tornado-rest - A simple and useful Restful API for Tornado Web Server

  •    Python

pyRestful is an API to develop restful services with Tornado Web Server. We made changes from the last version to improve it and make it more easy.

http.async.client - Asynchronous HTTP Client for Clojure

  •    Clojure

http.async.client is the Asynchronous HTTP Client for Clojure. It is promise-based and uses the Asynchronous Http Client for Java for the heavy lifting.

RxRuby - Reactive Extensions for Ruby

  •    Ruby

Reactive Programming is a hot topic as of late, especially with such things as the Reactive Manifesto. Applications' needs have changed over time, from simple polling for data to a full reactive system where data is pushed at you. Each time, we're adding more complexity, data, and asynchronous behavior to our applications. How do we manage it all? How do we scale it? By moving towards "Reactive Architectures" which are event-driven, resilient, and responsive. With the Reactive Extensions, you have all the tools you need to help build these systems.The Reactive Extensions for Ruby (RxRuby) is a set of libraries for composing asynchronous and event-based programs using observable sequences and fluent query operators that many of you already know in Ruby. Using RxRuby, developers represent asynchronous data streams with Observables, query asynchronous data streams using our many operators, and parameterize the concurrency in the asynchronous data streams using Schedulers. Simply put, RxRuby = Observables + Operators + Schedulers.

libuv - Cross platform Asynchronous I/O

  •    C

libuv is a multi-platform support library with a focus on asynchronous I/O. It was primarily developed for use by Node.js, but it’s also used by Luvit, Julia, pyuv, and others. Its feature includes event loop backed by epoll, kqueue, IOCP, event ports. Asynchronous TCP and UDP sockets, Asynchronous DNS resolution, Thread pool, Signal handling and lot more.

ParSeq - Asynchronous Java made easier

  •    Java

ParSeq is a framework that makes it easier to write asynchronous code in Java. It supports Parallelization of asynchronous operations (such as IO), Serialized execution for non-blocking computation, Execution tracing and visualization, Tasks with retry policy, Code reuse via task composition and lot more.