Tornado

ソフトウェアのスクリーンショット:
Tornado
ソフトウェアの詳細:
バージョン: 4.3 更新
日付のアップロード: 10 Dec 15
開発者: Facebook
ライセンス: 無料
人気: 9

Rating: 3.0/5 (Total Votes: 2)

初めにFacebookは、PHPとMySQLを使用して構築されましたが、ネットワークのトラフィックとサイズが増加するにつれて、リアルタイムでコンテンツのより良いと高速配信のためにその要件をしました。

これはPHPの外部の他の技術や言語を掘り下げするFacebookのチームを率いて、同社はすぐにPythonの、その検索エンジンを構築するためにGoogleが使用するプログラミング言語に観光スポットになっています。

チームの努力はトルネード、特に単純な非同期非ブロッキングな方法で生のHTTP接続で動作するように設計されたPythonのフレームワークと呼ばれる製品にもたらします。

竜巻がWeb.py のをGoogleのWebアプリケーションのような他のツールに触発さが、また同様に、余分な機能を備えていた。

全体の枠組みの中心には、というように国際化コンテンツ、文字列操作、出力生成、非同期操作、サードパーティのコード、ログ、およびに対処するためのモジュールの一式によって強化され、強力なHTTPサーバーを、常駐しています。

<強い>カサンドラのほかに、竜巻は、これまでのFacebookの最も成功したオープンソースのアプリケーションの1つです。

<強い>このリリースではの新機能ます。

  • 新しいモジュール:tornado.locksとtornado.queuesます。

<強い>バージョン4.2のの新機能は次のとおりです。

  • 新しいモジュール:tornado.locksとtornado.queues

  • tornado.web.stream_request_bodyデコレータは、大きなファイルができるようになります。

    <強い>バージョン4.1のの新機能であります限られたメモリ使用量をアップロードします。

  • コルーチンは今より速くあり、トルネードそのものを通して広範囲に渡って使用されています。その他の方法は、今ではほとんどのIOStream方法やRequestHandler.flush含め、先物を返します。
  • 多くのユーザーがオーバーライドされたメソッドは、現在のフロー制御のための未来を返すことが許可されています。
  • HTTP関連のコードは、現在、このようなチャンクとgzipエンコーディングより一貫性などの機能のサポートを行う、tornado.httpserver、tornado.simple_httpclientとtornado.wsgiモジュール間で共有されています。 HTTPServerのは現在、古いシングルコールバックインタフェースに加えてtornado.httputilで定義された新しいデリゲートインターフェイスを使用します。

  • IPv6の非ブロッキングDNS、SSLハンドシェーク、およびサポートとのTCP接続を作成tornado.tcpclient
  • 新しいモジュールます。

このをバージョン3.2.2にの新機能をされます。

  • XSRFトークンが今ランダムマスクでエンコードされています各要求に。これは、安全違反の攻撃に対して脆弱であることなく圧縮ページに含めることができます。これは、(プロキシによって適用GZIPを持っているか)xsrf_cookiesと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機能は、クッキーのフォーマット間の移行をサポートするために、新しいバージョンのパラメータを取ります。
  • 新しいクッ​​キーの形式は1クッキーの名前が別の名前の接頭辞で複数のクッキーを使用するアプリケーションで存在することができる脆弱性が修正されています。
  • 期限が切れるまで、中断を最小限にするために、古い形式のクッキーはデフォルトで許可されます。脆弱である可能性があるアプリケーションがRequestHandler.get_secure_cookieにmin_version = 2を通過させることにより、古い形式ですべてのクッキーを拒否することができます。

<強い>バージョン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と関連した方法ではなくUnicodeDecodeErrorのHTTPError(400)を上げます
  • RequestHandler.clear_all_cookiesは今ちょうどclear_cookieように、ドメインとパス引数を受け付けます。
  • これはURLSpecクラスを使用するときに名前でハンドラを指定することが可能になりました。
  • アプリケーションは現在、(以前の代わりにタプルのURLSpecオブジェクトの構築に必要な)名パラメータを指定するには、4つの要素を受け入れます。
  • ハンドラメソッドがなしまたは未来以外の値を返すと、誤ったエラーメッセージを修正します。

  • @Asynchronousと@の両方gen.coroutineを使用する際に
  • 例外はもう二度記録されません。

<強い>バージョン3.1のの新機能は次のとおりです。

  • 多くの参照サイクルができるように、パッケージ全体に分割されていますCPythonの上で、より効率的なガベージコレクションのます。
  • の接続が開かれたときにいくつかのログメッセージをサイレンシングし、すぐに閉じた(すなわち、ポートスキャン)、または閉じた接続に関連する他の状況ます。
  • 様々な小さなスピードアップ:HTTPHeaders場合の正規化、UIModuleプロキシオブジェクト、いくつかの正規表現をプリコンパイルます。

<強い>バージョン3.0.2のの新機能:バージョン1.1になりました。

  • tornado.auth.TwitterMixinデフォルトツイッターに話したときに6月11日に廃止されている代わりに、バージョン1.0のTwitterのAPI、のそれは今も、HTTPSを使用しています。
  • gen.coroutineまたはgen.engine機能の長鎖との潜在的なメモリリークを修正しました。

  • 多くの非同期メソッドを `` callback``引数があります。

    <強い>バージョン3.0のの新機能であります今、オプション、およびこれらの方法は `.Future`を返します。 `tornado.gen`モジュールは現在、` `Futures``を理解し、これらの方法は、` .gen.Task`ラッパーなしで直接使用することができます。
    特定のスレッドの(通常はメインスレッドの)IOLoopを返す `.IOLoop.instance`、とは対照的に、(現在のスレッドで実行されている` .IOLoop`を返し.IOLoop.current`

  • 新しい機能を `。
  • 新しいクラス `tornado.netutil.Resolver`は、DNS解決に非同期インタフェースを提供します。

  • 子供のファイルディスクリプタを `.PipeIOStream`アクセスの` subprocess.Popen`をラップtornado.process.Subprocess`
  • 新しいクラス `ます。
  • `.IOLoop`は現在、静的な`のconfigure&#x3cを持っています。.Configurable.configure&#のSpark Proの;以外の `.IOLoop`の実装を選択するために使用することができます` `.AsyncHTTPClient`上の1つのようなメソッド、デフォルト。 * `.IOLoop`は今、必要に応じて利用可能な場合単調なクロックを使用することができます。

<強い>バージョン2.4.1のの新機能:

  • だっtornado.stack_contextのメモリリークを修正長時間実行する@ gen.engine機能を持つ可能性が特に高くなります。
  • tornado.auth.TwitterMixinは今のPython 3で動作します。
  • バグを修正するには、時には代わりにストリーミングコールバックの最後のコールバックにデータの最後のチャンクを通過するストリーミングコールバックでIOStream.read_until_closeます。

<強い>バージョン2.4のの新機能である:tornado.authでのPython 3の不具合を修正しました。

  • 、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`ます。
  • のようなキーワード引数
  • AsyncHTTPClient.configure` `に` `max_clients``キーワード引数が動作するようになりました。
  • `tornado.simple_httpclient`は現在、` `OPTIONS``と` `PATCH`` HTTPメソッドをサポートしています。
  • `tornado.simple_httpclient`はそのソケットを閉じるの代わりにガベージコレクションのためにそれらを残す程度優れています。

  • <李は> `tornado.simple_httpclient`は正しく(このバグは、Python 2.5と2.6に影響を与えた)のIPv6リテラルを含むURLのSSL証明書を検証します。
    これらの資格情報がURLから抽出されたときに
  • `tornado.simple_httpclient`はもはや` `Host``ヘッダーで基本認証の資格情報が含まれていない。
  • `tornado.simple_httpclient`はもはやリダイレクトを以下のときに問題の原因となった、呼び出し側が提供するヘッダの辞書を変更します。
  • は `tornado.curl_httpclient`は今tornado.simple_httpclient``と同じ `` client_cert``と `` client_key``引数を使って(クライアントのSSL証明書をサポートしています。

<強い>バージョン2.2.1のの新機能:

  • セキュリティ修正:

  • <李は> `tornado.web.RequestHandler.set_header`が正しく(これは常にこれを実行しようとしましたが、チェックが間違っていました)ヘッダインジェクション、レスポンス分割等から保護するために入力値をサニタイズ。リダイレクト(注)、そのようなバグの可能性が最も高いソースは、 `RequestHandler.redirect`で別のチェックで保護されています。
  • バグ修正:
  • tornado.options` `で着色されたロギング設定は、Python 3.2.3(および3.3)と互換性があります。

<強い>バージョン2.2のの新機能です。

  • 更新と拡張WebSocketをサポートます。

  • ツイスト/トルネードブリッジの
  • の互換性の向上ます。
  • テンプレートのエラーは今より良いスタックトレースを生成します。

  • tornado.gen` `の
  • より良い例外処理ます。

<強い>バージョン2.1.1のの新機能:

  • バグ修正:
  • `` epoll``(すなわち、Linux)の `` IOLoop``と閉じられた接続の処理を修正。以前は、閉じられた接続は、ほとんどの場合&QUOTとして現れるた、あまりにも早くシャットダウンすることができ、ストリームが閉じ&QUOTされます。 `` SimpleAsyncHTTPClient``ます。
  • で例外
  • 応答が切り捨てられた出力につながる、途中で閉じることができたチャンクの場合を修正します。
  • `` IOStream.connect``は今ロギングおよびクローズのコールバック(これはFreeBSDでlocalhostに例えば接続に影響します)を介して、より一貫してエラーを報告します。
  • `` IOStream.read_bytes``が再び `` int``と `` long``引数の両方を受け入れます。
  • `` PeriodicCallback``はもはや `` IOLoop``の反復が速く `` time.time() ``(Windowsの主な問題)の解像度よりも完了すると、繰り返し実行されません。

  • Diginotarは、デフォルトのCA証明書ファイルから削除されています。

    <強い>バージョン2.1.0のの新機能でありますSimpleAsyncHTTPClient` `で使用される

  • いくつかの先進的なマルチプロセス・シナリオ、 `` HTTPServer``が新しいメソッド `` add_sockets``を持っており、ソケット開口コードがtornado.netutil.bind_sockets` `として個別に提供されてます。
  • を容易にするために、
  • トルネードの前1.0のリリースによって書かれたセキュアなクッキーのサポートが削除されています。
  • は、Windowsのサポートが改善されています。

<強い>バージョン2.0.0のの新機能:

  • 主な変更点:
  • テンプレートの出力は、デフォルトで自動的にエスケープされます。
  • デフォルトAsyncHTTPClientの実装は今simple_httpclientでます。
  • のPython 3.2がサポートされるようになりました。
  • 下位互換性:
  • テンプレートautoescapingはデフォルトで有効になっています。竜巻の以前のリリースからのアプリケーションのアップグレードがautoescapingを無効にするかで動作するように、そのテンプレートを適応させる必要があります。ほとんどのアプリケーションでは、これを実行する最も簡単な方法は、アプリケーションのコンストラクタにautoescape = Noneを渡すことです。
  • AsyncHTTPClient.configure呼び出すことによって、そうすることの代わりにsimple_httpclientのcurl_httpclientを引き続き使用したいアプリケーション(&QUOTを、tornado.curl_httpclient.CurlAsyncHTTPClient&QUOT;)プロセスの開始時に。 Pythonの2.5のユーザーは、おそらくsimple_httpclientだけのPython 2.6 +でSSLをサポートしているとしてcurl_httpclientを使用したいと思うでしょう。

  • このリリースにアップグレードするときに、ユーザーがより徹底的に通常よりも自分のアプリケーションをテストすることが奨励されるように、
  • のPython 3互換性は、コードベース全体に多くの変更を関与ます。
  • バージョン4.1でのその他の変更:
  • テンプレートは、いくつかの新しいディレクティブをサポートしています。 - {%autoescape ...%}エスケープ動作を制御する - {生%...%}エスケープされていない出力のために - UIModulesを呼び出すための{%モジュール...%を} * {%モジュールをテンプレート(パス、** kwargsから)%}は今独立した名前空間に別のテンプレートを呼び出すために使用することができるます。
  • すべてのIOStreamコールバックは今add_callback経由IOLoop上で直接実行されています。
  • HTTPServerのは今どこに利用できるIPv6をサポートしています。 )(HTTPServer.bindに家族= socket.AF_INETを渡し、無効にするには。
  • HTTPClientのは、今は、HTTPRequestのallow_ipv6 =ブール値を使用して構成、IPv6をサポートしています。 allow_ipv6 curl_httpclientのsimple_httpclientに偽と真のデフォルトをます。
  • RequestHandlers)は(decode_argumentをオーバーライドすることで、クエリパラメータのUTF-8以外のエンコーディングを使用することができます。

  • 特にIOLoopの多くはタイムアウト使用するアプリケーションのための
  • パフォーマンスの向上、ます。
  • のHTTP OPTIONSメソッドは、もはやXSRFトークンを必要としません。
  • JS​​ON出力(RequestHandler.write(辞書)が)これで、アプリケーション/ JSONにコンテンツタイプを設定します。
  • のEtag計算は今RequestHandler.compute_etagをオーバーライドすることでカスタマイズしたり無効にすることができます。
  • USE_SIMPLE_HTTPCLIENT環境変数はサポートされなくなりました。代わりにAsyncHTTPClient.configureを使用します。

<強い>バージョン1.2.1のの新機能:

  • このリリースはバージョンに比べて2つだけの小さな変更が含まれています1.2:
  • FacebookGraphMixinは、FacebookのAPIへの最近の変更で動作するように更新されています。
  • ランニング&QUOT; setup.pyインストール&QUOT;もはや自動的にpycurlをインストールしようとしません。これはpycurlをインストールするための最良の方法ではなく、easy_installをのapt-getのようなものを介しているプラ​​ットフォームではうまく動作していませんでした。あなたがFacebookGraphMixinを使用している場合、これは重要なアップグレードですが、それ以外の場合は、安全に無視できます。

<強い>バージョン1.2.0のの新機能は次のとおりです。

  • このリリースは、より互換性のないセキュリティの変更が含まれますバージョン1.1.1ます。

  • 透過的にこの新しい実装でtornado.httpclient.AsyncHTTPClientを交換するには
  • は、変数USE_SIMPLE_HTTPCLIENT = 1
  • 環境を設定することができます
  • 要求ロギングは、現在のアプリケーションではなく、のRequestHandlerによって行われます。ロギング動作は、サブクラスでまたはアプリケーション設定としてlog_functionを渡すことで、どちらかの上書きApplication.log_requestによってカスタマイズすることができるます。

<強い>はどのバージョン1.1.1のの新しいます。

  • トルネード1.1.1は互換性のないセキュリティXSRFの脆弱性を修正するアップデートます。

<強い>バージョン1.1のの新機能:

  • 変更:

  • 他のクラスの
  • RequestHandler.async_callbackと関連する関数は、もはやほとんどの場合必要ありません(それはを続けるためには無害ですが、
  • それらを使用して)。キャッチされない例外は、現在の要求があっても、コールバックに閉鎖されることになります。あなたはこれがどのように機能するか興味場合は、新しいtornado.stack_contextモジュールを参照してくださいます。
  • 新しいtornado.testingモジュールは、ユニットテスト非同期IOLoopベースのコードのサポートが含まれています。
  • AsyncHTTPClientが書き直されました(新しい実装はトルネード1.0にAsyncHTTPClient2として利用可能であった。両方の名前を逆方向のためにサポートされています。
  • の互換性)ます。
  • tornado.authモジュールは、OAuthの2.0のサポートやFacebookグラフAPIを含むアップデートの数を、持っていた、とのOAuth 1.0aのにTwitterやGoogleのサポートをアップグレードしています。
  • のWebSocketモジュールが帰ってきたとのWebSocketプロトコルの最新バージョン(76)をサポートしています。このモジュールのインタフェースはトルネードの前の1.0バージョンで登場のWebSocketモジュールとは異なることに注意してくださいます。
  • 新しいメソッドRequestHandler.initializeは()URLSpecsから取り扱い引数を簡単にするために、サブクラスでオーバーライドすることができます。初期化時に呼び出されるメソッドの順序はhttp://tornadoweb.org/documentation#overriding-requesthandler-methodsで文書化されます。
  • get_argument()および関連する方法は今のPOSTに加えて、PUT要求に取り組むます。
  • HTTPClientのモジュールは、現在のHTTPプロキシをサポートしています。

  • SSLモードで実行されHTTPServerの
  • は、SSLハンドシェイクは、現在非ブロッキングでます。
  • 多くの小さいバグ修正とドキュメントの更新
  • 後方互換性に関する注意:
  • 竜巻のほとんどのユーザーは直接stack_contextモジュールに対処する必要はありませんが、ワーカースレッドプールと類似した構造物のユーザーがメモリリークを回避するためにstack_context.wrapおよび/またはNullContextを使用する必要があります。

  • 新しいAsyncHTTPClientはまだlibcurlのバージョン7.16.xに
  • に動作しますが、libcurlのpycurlとの両方が、少なくともバージョン7.18.2ているときには、パフォーマンスが向上します。

  • 認証モジュールの以前のバージョンで起動
  • OAuthの取引は、新しいモジュールの下で完了することができません。これは、最初の承認プロセスに適用されます。許可されたトークンが発行されると、そのトークンは、バージョンのいずれかで動作します。

このの要件

  • はPython 2.6以上

同じようなソフトウェア

Themosis framework
Themosis framework

24 May 16

Cement
Cement

20 Jul 15

Apache ServiceMix
Apache ServiceMix

11 Mar 16

Nancy
Nancy

10 Feb 16

開発者の他のソフトウェア Facebook

Messenger
Messenger

4 May 20

Draft.js
Draft.js

18 Jul 16

React Native
React Native

12 Apr 15

へのコメント Tornado

コメントが見つかりません
コメントを追加
画像をオンにする!
カテゴリから探す