Спустя почти три года с момента открытия компанией Facebook исходных тестов, представлен релиз web-сервера Tornado 2.0. Tornado распространяется в рамках лицензии Apache и представляет собой высокопроизводительный фреймворк для создания web-серверов на языке Python, обрабатывающих запросы в неблокирующем режиме, поддерживая использование epoll и kqueue. По производительности Tornado в разы опережает такие фреймворки, как Django, web.py и CherryPy, предоставляя при этом разработчику схожие возможности.
На стандартом оборудовании Tornado способен справиться с нагрузкой в тысячи одновременных соединений, что делает его подходящим решением для созданием web-сервисов на языке Python, обслуживающих запросы в реальном режиме времени. Изначально и по сей день Tornado используется для обслуживания работы сервиса FriendFeed, занимающегося агрегацией в режиме реального времени информации из различных социальных сетей, блогов и микроблогов. В Tornado имеется поддержка Django шаблонов, средств для работы с верифицированными cookie, механизмов аутентификации, локализации, возможностей для агрессивного кэширвоания статических компонентов страниц, встроенной защиты от CSRF-атак.
В новой версии отмечено несколько нарушающих обратную совместимость изменений, таких как включение по умолчанию автоматического экранирования шаблонов. При миграции на новую версию рекомендуется ознакомиться с примечаниями к выпуску. Среди ключевых изменений, представленных в версии 2.0, можно отметить:
- Переработка кода c целью обеспечения поддержки Python 3.2;
- Автоматическое экранирование по умолчанию для вывода шаблонов;
- Использование в качестве базовой реализации AsyncHTTPClient кода simple_httpclient вместо curl_httpclient;
- Расширение числа доступных директив в языке для оформление шаблонов;
- Поддержка IPv6 в клиентских и серверных подсистемах;
- Возможность вызова шаблона из другого шаблона с их работой в отдельных пространствах имён.