Tornado

Скріншот програми:
Tornado
Дані програми:
Версія: 4.3 оновлений
Дата завантаження: 10 Dec 15
Розробник: Facebook
Ліцензія: Безкоштовно
Популярність: 144

Rating: 2.7/5 (Total Votes: 3)

На початку Facebook був побудований з використанням PHP і MySQL, але, як трафіку і розміру мережі збільшилася, так і зробили свої вимоги для швидкого і кращого доставки контенту в режимі реального часу.

Це призвело команду Facebook, щоб копатися в інших технологій і мов за межами PHP, і компанія незабаром повернули погляд на Python, мова програмування, що використовується Google для створення своєї пошукової системи.

Зусилля команди привели в продукті під назвою Tornado, рамки Python, спеціально розроблений для роботи з сирими з'єднань HTTP в простій асинхронної Неблокуючий чином.

Торнадо був натхненний іншими інструментами, як Web.py і Google, веб-додаток, але також включає в себе додаткові функції, а також.

У центрі всього рамках проживає потужний сервер HTTP, який посилюється набором модулів для роботи з вмістом i18n, рядками, покоління вихідний, асинхронних операцій, сторонньому коді, журналів і так далі.

Крім Кассандра , Торнадо є одним з найуспішніших відкритих джерел додатків Facebook на сьогоднішній день.

Що нового У цьому випуску

  • Нові модулі: tornado.locks і tornado.queues

Що нового у версії 4.2:

  • Нові модулі: tornado.locks і tornado.queues

Що нового у версії 4.1:

  • The tornado.web.stream_request_body декоратор дозволяє великі файли, щоб бути завантажено з обмеженою використання пам'яті.
  • співпрограмами тепер швидше і широко використовуються у всьому самої Tornado. Більше методів тепер повернемося ф'ючерси, у тому числі більшості методів IOStream і RequestHandler.flush.
  • Багато користувачем перевизначити методи в даний час дозволено повернутися в майбутнє для управління потоком.
  • HTTP-код, пов'язаний з тепер розподіляється між tornado.httpserver, tornado.simple_httpclient і tornado.wsgi модулів, що робить підтримку таких функцій, як фрагментовані і кодування GZIP більш послідовним. HTTPServer тепер використовує нові інтерфейси, визначені делегатів у tornado.httputil на додаток до своєї старої одного інтерфейсу зворотного виклику.
  • Новий модуль tornado.tcpclient створює з'єднання TCP з Неблокуючий DNS, SSL рукостискання, і підтримку IPv6.

Що нового у версії 3.2.2:

  • Маркер XSRF тепер кодується з випадковим маски на кожен запит. Це робить його безпечним для включення в стислих сторінок, не будучи уразливими до порушення атаки. Це відноситься до більшості додатків, що використовують обидва xsrf_cookies і варіанти GZIP (або GZIP застосовується за дорученням).
  • Якщо Торнадо 3.2.2 запускається в той же час, як більш старих версій на тому ж домені, є деякий потенціал для запитань з різними версіями печива. Встановлення програм xsrf_cookie_version = 1 може бути використаний протягом перехідного періоду, щоб генерувати старий формат куки на нових серверів.
  • tornado.platform.asyncio тепер сумісний з Trollius версії 0.3.

Що нового у версії 3.2.1:

  • Формат підписав значення використовується RequestHandler.set_secure_cookie і RequestHandler.get_secure_cookie змінилася, щоб бути більш безпечним. Це незворотних змін. Функції secure_cookie прийняти нові параметри версії для підтримки переходів між форматами печива.
  • Новий формат печиво усуває вразливість, яка може бути присутнім в додатках, що використовують кілька печиво, де ім'я одного печива є префіксом імені іншого.
  • Щоб звести до мінімуму порушення, печиво в старому форматі будуть прийматися за замовчуванням, поки вони не застаріють. Додатки, які можуть бути уразливі може відхилити всі куки в старому форматі, передаючи MIN_VERSION = 2 RequestHandler.get_secure_cookie.

Що нового у версії 3.2:

  • Новий додаток налаштування default_handler_class можуть бути використані для легко налаштувати користувальницький 404 сторінок.
  • Нью налаштування програми автоперезагрузка, compiled_template_cache, static_hash_cache і serve_traceback можуть бути використані для управління окремими аспектами режимі налагодження.
  • Нью методи RequestHandler.get_query_argument і RequestHandler.get_body_argument і нові атрибути HTTPRequest.query_arguments і HTTPRequest.body_arguments дозволити доступ до аргументів без змішання тих з рядка запиту з тими, з тілом запиту.
  • RequestHandler.decode_argument і пов'язані методи в даний час підняти HTTPError (400) замість UnicodeDecodeError, коли аргумент не може бути декодована.
  • RequestHandler.clear_all_cookies тепер приймає аргументи домену та шлях, як clear_cookie.
  • Це тепер можна вказати обробники по імені при використанні класу URLSpec.
  • Застосування тепер приймає 4-кортежів, щоб вказати параметр ім'я (які раніше необхідну створення об'єкта URLSpec замість кортежу).
  • Виправлена ​​неправильне повідомлення про помилку, коли методи-обробники повертають значення, ніж None чи майбутнє.
  • Винятку не буде записана двічі при використанні какasynchronous і @ gen.coroutine.

Що нового у версії 3.1:

  • Багато посилання циклів були розбиті протягом упаковці, що дозволяє для більш ефективного збору сміття на CPython.
  • глушником деякі повідомлення журналу при з'єднання відкриті і негайно закриті (тобто сканування портів), або інші ситуації, пов'язані з закритими сполуками.
  • Різні дрібні прискорень: HTTPHeaders справу нормалізації, UIModule проксі-об'єкти, прекомпілірованние деякі регулярні вирази
  • .

Що нового у версії 3.0.2:

  • tornado.auth.TwitterMixin тепер за замовчуванням версії 1.1 в API Twitter, а не версії 1.0, яка в даний час припинено 11 червня Він також використовує HTTPS в даний час, коли розмовляє з Twitter.
  • Виправлена ​​потенційна витік пам'яті з довгого ланцюга gen.coroutine або gen.engine функцій.

Що нового у версії 3.0:

  • Параметр `` callback`` аргумент багатьох асинхронних методів Тепер необов'язково, і ці методи повертають `.Future`. Модуля `tornado.gen` тепер понімает`` Futures``, і ці методи можуть бути використані безпосередньо, без оберткі` .gen.Task`.
  • Нова функція `.IOLoop.current` возвращает` .IOLoop`, який працює в поточному потоці (на відміну від` .IOLoop.instance`, який повертає зазвичай) IOLoop основного потоку конкретного потоку (.
  • Новий клас `tornado.netutil.Resolver` забезпечує асинхронний інтерфейс з резолюцією DNS.
  • Новий клас `` tornado.process.Subprocess` обгортання subprocess.Popen` з `.PipeIOStream` доступу до файлових дескрипторів дитини.
  • `.IOLoop` тепер має статіческій` налаштувати і # x3c; .Configurable.configure & # x3e;` метод, як один на '.AsyncHTTPClient`, які можуть бути використані для вибору `реалізацію .IOLoop` інший, ніж за замовчуванням. * `.IOLoop` Тепер можуть додатково використовувати монотонне годинник, якщо є.

Що нового у версії 2.4.1:

  • Виправлена ​​витік пам'яті в tornado.stack_context, що було особливо ймовірно з функціями давно працює @ gen.engine.
  • tornado.auth.TwitterMixin тепер працює на Python 3.
  • Виправлена ​​помилка, в якій IOStream.read_until_close з потоковим зворотного виклику іноді проходять останню порцію даних до кінцевого зворотного виклику замість потокового зворотного виклику.

Що нового у версії 2.4:

  • Виправлені помилки Python 3 в tornado.auth, tornado.locale і tornado.wsgi.
  • OAuthMixin тепер приймає і Quot; OOB & Quot; як callback_uri.
  • OpenIDMixin тепер повертає claimed_id поле для користувача.
  • tornado.platform.twisted послідовність відключення зараз більш сумісно.
  • Конфігурація реєстрації використовується в tornado.options тепер більш терпимі НЕ-ASCII байт рядка.

Що нового у версії 2.3:

  • `tornado.httpclient.HTTPClient` тепер підтримує той же конструктор ключові аргументи як `AsyncHTTPClient`.
  • Параметр `` max_clients`` ключове слово аргумент `AsyncHTTPClient.configure` тепер працює.
  • `tornado.simple_httpclient` тепер поддержівает`` OPTIONS`` і` `PATCH`` HTTP методи.
  • `tornado.simple_httpclient` краще про закриття своїх гнізд, а не залишати їх для збору сміття.
  • `tornado.simple_httpclient` правильно перевіряє сертифікати SSL для URL-адрес, що містять літерали IPv6 (Ця помилка впливає Python 2.5 і 2.6).

  • не «LI>` tornado.simple_httpclient` більше не включає в себе основні авторизації в облікові дані В` `заголовку Host``, коли ці облікові дані, витягнуті з URL.
    не «LI>` tornado.simple_httpclient` більше не змінює викликає поставляється словник заголовка, який викликав проблеми, коли після перенаправлення.
  • `tornado.curl_httpclient` тепер підтримує клієнтські сертифікати SSL (використовуючи той же`` client_cert`` і` `client_key`` аргументи як` tornado.simple_httpclient`.

Що нового у версії 2.2.1:

  • виправлення безпеки:
  • `tornado.web.RequestHandler.set_header` тепер правильно дезінфікує вхідні значення для захисту від ін'єкції заголовка, відповіді розщеплення, і т.д. (це завжди намагалися зробити це, але чек був неправильним). Зверніть увагу, що перенаправляє, найбільш імовірним джерелом таких помилок охороняються окремому перевірки в `RequestHandler.redirect`.
  • виправлення:
  • Конфігурація реєстрації Кольорові в `tornado.options` сумісний з Python 3.2.3 (і 3.3).

Що нового у версії 2.2 :.

  • Оновлений і розширений підтримка WebSocket
  • Покращена сумісність в міст кручений / Tornado.
  • помилки шаблону Тепер генерувати більш трасування стека.
  • Краще обробка виключень в `tornado.gen`.

Що нового у версії 2.1.1:

  • виправлення:
  • Виправлена ​​обробка замкнутих зв'язків з `` epoll`` (тобто Linux) `` IOLoop``. Раніше закриті сполуки можуть бути закриті занадто рано, які найчастіше проявляється у вигляді & Quot; потік закритий і Quot; виключення в `` SimpleAsyncHTTPClient``.
  • Виправлена ​​помилка, в якій поблочного відповіді можуть бути закрита передчасно, що призводить до укороченим виробництва.
  • `` IOStream.connect`` тепер повідомляє помилки більш послідовно за допомогою реєстрації та тісній зворотного виклику (наприклад, це стосується з'єднань на локальний на FreeBSD).
  • `` IOStream.read_bytes`` знову приймає і `` int`` і `` long`` аргументи.

  • не «LI>` `PeriodicCallback`` більше не працює, коли неодноразово` `IOLoop`` ітерації виконується швидше, ніж дозвіл` `time.time ()` `(в основному проблеми на Windows).

Що нового у версії 2.1.0:

  • DigiNotar був видалений з файлу сертифікатів CA за замовчуванням використовується `SimpleAsyncHTTPClient`
  • Щоб полегшити деякі додаткові сценарії декількох процесів, `` HTTPServer`` має новий метод `` add_sockets`` і гніздо-відкриття код доступний окремо як `tornado.netutil.bind_sockets`.
  • Підтримка захищених печиво, написаних заздалегідь 1,0-релізи Торнадо був видалений.
  • Підтримка ОС Windows була покращена.

Що нового у версії 2.0.0:

  • Основні зміни:
  • шаблон виводу автоматично втік за замовчуванням.
  • реалізація за замовчуванням AsyncHTTPClient тепер simple_httpclient.
  • Python 3.2 тепер підтримує.
  • Зворотна сумісність:
  • Шаблон autoescaping включена за замовчуванням. Оновлення додатків з попередньої версії Tornado повинні або відключити autoescaping або адаптувати свої шаблони для роботи з ним. Для більшості додатків, найпростіший спосіб зробити це, щоб пройти autoescape = None в конструктор додатків.
  • Додатки, які хочуть продовжувати використовувати curl_httpclient замість simple_httpclient може зробити за телефоном (AsyncHTTPClient.configure & Quot; tornado.curl_httpclient.CurlAsyncHTTPClient & Quot;) на початку процесу. Користувачі Python 2.5, ймовірно, хочете використовувати в якості curl_httpclient simple_httpclient підтримує тільки SSL на Python 2.6 +.
  • Python 3 Сумісність участь багато змін по всьому коді, так що користувачі будуть заохочувати протестувати свої програми більш ретельно, ніж зазвичай при оновленні до цієї версії.
  • Інші зміни у версії 4.1:
  • В шаблони кілька нових директив: - {% autoescape ...%}, щоб контролювати поведінку втечі - {% сирої ...%} для виходу немаскірованном - {% модуль ...%} для виклику UIModules * {% модуль Шаблон (шлях, ** kwargs)%} тепер може бути використаний для виклику іншого шаблону з незалежним імен.
  • Всі зворотні виклики IOStream тепер працювати безпосередньо на IOLoop допомогою add_callback.
  • HTTPServer тепер підтримує IPv6 де доступні. Щоб відключити, пройти сім'я = socket.AF_INET в HTTPServer.bind ().
  • HTTPClient тепер підтримує IPv6, конфігурується за допомогою allow_ipv6 = BOOL на HTTPRequest. allow_ipv6 замовчуванням до помилкових на simple_httpclient і правда на curl_httpclient.
  • RequestHandlers можете використовувати кодування, ніж UTF-8 для параметрів запиту за допомогою перевизначення decode_argument ().

  • поліпшення
  • Продуктивність, особливо для додатків, які використовують багато IOLoop тайм-аути.

  • не «LI> HTTP метод ВАРІАНТИ більше не потрібно маркер XSRF.
  • Вихід JSON (RequestHandler.write (DICT)) тепер встановлює Content-Type для додатків / JSON.
  • обчислення Etag тепер можуть бути налаштовані або відключені за допомогою перевизначення RequestHandler.compute_etag.

  • не «LI> змінна USE_SIMPLE_HTTPCLIENT середу більше не підтримується. Використання AsyncHTTPClient.configure замість цього.

Що нового у версії 1.2.1:

  • Цей реліз містить тільки два невеликих змін в порівнянні з версією 1.2:
  • FacebookGraphMixin був оновлений для роботи з недавньою зміною до API Facebook.
  • Запуск & Quot; setup.py встановити і Quot; більше не буде намагатися автоматично встановити pycurl. Це не працює добре на платформах, де найкраще встановити pycurl здійснюється через щось на зразок APT-отримати замість easy_install. Це важливий оновлення, якщо ви використовуєте FacebookGraphMixin, але в іншому випадку він може бути проігноровано.

Що нового у версії 1.2.0:

  • Цей реліз включає в себе назад-несумісне зміна безпеки від Версія 1.1.1.
  • Щоб прозоро замінити tornado.httpclient.AsyncHTTPClient з цією новою реалізації, ви можете встановити змінну середовища USE_SIMPLE_HTTPCLIENT = 1
  • Запит реєстрації тепер виконується за допомогою додатка, а чим RequestHandler. Вхід поведінка може бути налаштована або перевизначення Application.log_request в підкласі або проходження log_function як налаштування додатків.

Що нового у версії 1.1.1:

  • Торнадо 1.1.1 є зворотної сумісності безпеки оновлення, що усуває вразливість XSRF.

Що нового у версії 1.1:

  • Зміни:

  • не «LI> RequestHandler.async_callback і пов'язані функції в інших класах більше не потрібен в більшості випадків (хоча це не нешкідливо для продовження
  • їх використання). Тепер Неперехваченние виключення викличе запит повинен бути закритий навіть у функції зворотного виклику. Якщо вам цікаво, як це працює, побачити новий модуль tornado.stack_context.
  • Новий модуль tornado.testing містить підтримку для модульного тестування асинхронного IOLoop основі коду.
  • AsyncHTTPClient був переписаний (нова реалізація була доступна AsyncHTTPClient2 в Торнадо 1,0; обидві назви підтримуються для зворотного
  • сумісність).
  • Модуль tornado.auth була ряд оновлень, включаючи підтримку OAuth 2.0 і Facebook Graph API і оновлення Twitter і Google підтримки OAuth 1.0a.
  • Модуль WebSocket повернувся, і підтримує останню версію (76) протоколу WebSocket. Зверніть увагу, що інтерфейс цього модуля відрізняється від модуля WebSocket, яка з'явилася в попередніх версій 1.0 торнадо.
  • Новий метод RequestHandler.initialize () можна перевизначити в підкласах для спрощення обробки аргументів з URLSpecs. Послідовність методів називається під час ініціалізації документально в http://tornadoweb.org/documentation#overriding-requesthandler-methods
  • get_argument () і пов'язані з ними методи в даний час працюють на запити PUT на додаток до POST.
  • Модуль HttpClient підтримує HTTP-проксі.
  • Коли HTTPServer виконується в режимі SSL, діалогу SSL тепер без блокування.
  • Багато виправлень помилок менше і поновлення документації

  • Примітки
  • Зворотна сумісність:
  • У той час як більшість користувачів Торнадо не повинні мати справу з модулем stack_context безпосередньо, користувачі робочих пулів потоків і аналогічних конструкцій, можливо, буде потрібно використовувати stack_context.wrap та / або NullContext, щоб уникнути витоку пам'яті.
  • Новий AsyncHTTPClient і раніше працює з Libcurl версія 7.16.x, але він виконує краще, коли обидва Libcurl і pycurl, принаймні версія 7.18.2.
  • OAuth угоди почали попередніх версій модуля Ідент не може бути завершена в рамках нового модуля. Це відноситься тільки до первісного процесу авторизації; як тільки авторизований маркер видається, що маркер працює з будь-якої версії.

Вимоги

  • Python 2.6 або вище

Схожі програми

Flatiron
Flatiron

1 Mar 15

Vaadin
Vaadin

9 Apr 16

Ringo
Ringo

12 May 15

Vue.js
Vue.js

9 Feb 16

Інші програми розробника Facebook

XHP
XHP

1 Oct 15

Tornado

Коментар не знайдено
додати коментар
Включіть картинки!
Пошук за категоріями