Tornado

Screenshot der Software:
Tornado
Softwarebeschreibung:
Version: 4.3 Aktualisiert
Upload-Datum: 10 Dec 15
Entwickler: Facebook
Lizenz: Frei
Popularität: 9

Rating: 3.0/5 (Total Votes: 2)

Im Anfang Facebook wurde mit PHP und MySQL gebaut, aber da der Verkehr und die Größe des Netzwerks erhöht, so hat ihre Anforderungen für eine bessere und schnellere Bereitstellung von Inhalten in Echtzeit.

Dies veranlasste die Facebook-Team, um in andere Technologien und Sprachen außerhalb von PHP zu vertiefen, und das Unternehmen stellte sich bald Sehenswürdigkeiten um Python, einer Programmiersprache, die von Google verwendet, um seine Suchmaschine zu bauen.

Die Bemühungen des Teams in einem Produkt namens Tornado, eine Python-Framework speziell entwickelt, um mit rohen HTTP-Verbindungen in einer einfachen asynchronen nicht-blockierenden Weise zu arbeiten geführt.

Tornado wurde von anderen Tools wie Web.py und Googles Webapp inspiriert, sondern umfasst auch zusätzliche Funktionen als gut.

In der Mitte des gesamten Rahmens liegt eine leistungsfähige HTTP-Server, der von einer Reihe von Modulen für den Umgang mit i18n Inhalte, String-Manipulation, Ausgangs Generation, asynchrone Operationen, Code von Drittanbietern, Protokolle verstärkt wird, und so weiter.

Neben der Cassandra ist Tornado einem der Facebook erfolgreichsten Open Source-Anwendungen auf dem neuesten Stand.

Was ist neu in diesem Release :

  • Neue Module: tornado.locks und tornado.queues

Was ist neu in Version 4.2:

  • Neue Module: tornado.locks und tornado.queues

Was ist neu in Version 4.1:

  • Die tornado.web.stream_request_body Decorator erlaubt es, große Dateien zu sein mit begrenzten Speichernutzung hochgeladen.
  • Koroutinen sind nun schneller und werden ausgiebig durch Tornado selbst verwendet. Weitere Methoden jetzt Futures zurück, darunter die meisten iostream Methoden und RequestHandler.flush.
  • Viele Benutzer außer Kraft gesetzt Methoden sind nun erlaubt, eine Zukunft für die Ablaufsteuerung zurück.
  • HTTP-bezogenen Code wird jetzt zwischen den tornado.httpserver, tornado.simple_httpclient und tornado.wsgi Modulen gemeinsam genutzt, so dass die Unterstützung für Funktionen wie Chunked und gzip-Codierung konsistenter. Httpserver verwendet nun neue Delegierte Schnittstellen in tornado.httputil zusätzlich zu seiner alten Single-Callback-Schnittstelle festgelegt.
  • Neues Modul tornado.tcpclient TCP-Verbindungen mit nicht-blockierenden DNS, SSL-Handshake, und die Unterstützung für IPv6 erstellt.

Was ist neu in der Version 3.2.2:

  • Die XSRF Token wird nun mit einem zufälligen Maske codiert bei jeder Anforderung. Dies macht es sicher, in Druckseiten ohne anfällig für den Angriff VERLETZUNG enthalten. Dies gilt für die meisten Anwendungen, die sowohl die xsrf_cookies und gzip-Optionen (gzip durch einen Bevollmächtigten aufgetragen oder) zu verwenden.
  • Wenn Tornado 3.2.2 wird zur gleichen Zeit, da ältere Versionen auf dem gleichen Gebiet laufen, gibt es einige Potenzial für Probleme mit der unterschiedlichen Cookie-Versionen. Die Anwendungseinstellung xsrf_cookie_version = 1 kann für eine Übergangszeit verwendet, um die älteren Cookie-Format auf neueren Servern zu erzeugen.
  • tornado.platform.asyncio ist jetzt mit trollius Version 0.3 kompatibel.

Was ist neu in der Version 3.2.1:

  • Der unterzeichnete Wertformat, das von RequestHandler.set_secure_cookie verwendet und RequestHandler.get_secure_cookie geändert hat, um sicherer. Dies ist eine disruptive Veränderung. Die secure_cookie Funktionen übernehmen neue Version Parameter, um die Übergänge zwischen Cookie-Formate unterstützen.
  • Die neue Cookie-Format beseitigt eine Schwachstelle, die vorhanden sein können, in Anwendungen, die mehrere Cookies, wo der Name eines Cookie ist ein Präfix des Namens eines anderen zu verwenden.
  • Um Störungen zu minimieren, wird diese Option in dem älteren Format standardmäßig akzeptiert werden, bis sie ablaufen. Anwendungen, die anfällig sein können, können alle Cookies im alten Format, indem min_version = 2 bis RequestHandler.get_secure_cookie abzulehnen.

Was ist neu in der Version 3.2:

  • Neues Programm einstellen default_handler_class kann verwendet werden, um sich individuelle leicht eingestellt werden 404 Seiten.
  • Neue Anwendungseinstellungen Autoreload, compiled_template_cache, static_hash_cache und serve_traceback können einzelne Aspekte der Debug-Modus zu steuern.
  • Neue Methoden RequestHandler.get_query_argument und RequestHandler.get_body_argument und neue Attribute HTTPRequest.query_arguments und HTTPRequest.body_arguments Zugriff auf Argumente zu ermöglichen, ohne Vermischung solche aus der Query-String mit denen aus der Anfrage Körper.
  • RequestHandler.decode_argument und verwandte Verfahren jetzt zu erhöhen ein httperror (400) anstelle von UnicodeDecodeError, wenn das Argument konnte nicht decodiert werden.
  • RequestHandler.clear_all_cookies akzeptiert jetzt Domain und den Pfad Argumente, wie clear_cookie.
  • Es ist nun möglich, lader Namen angeben, wenn Sie die URLSpec Klasse.
  • Anwendung akzeptiert jetzt 4-Tupel, um den Namen Parameter (die bisher erforderliche Konstruktion eines URLSpec Objekt anstelle eines Tupels) angeben.
  • Feste eine falsche Fehlermeldung, wenn Handler Methoden geben eine andere als None oder ein Zukunftswert.
  • Ausnahmen werden nicht mehr zwei Mal bei der Verwendung von sowohlasynchronous und @ gen.coroutine angemeldet sein.

Was ist neu in Version 3.1:

  • Viele Referenzzyklen wurden in der gesamten Verpackung gebrochen, so dass für eine effizientere Speicherbereinigung in CPython.
  • Zum Schweigen einige Protokollmeldungen bei Verbindungen geöffnet und sofort wieder geschlossen (dh Port-Scans), oder in anderen Situationen, geschlossene Verbindungen zusammen.
  • Verschiedene kleine Beschleunigungen: httpheaders Fall Normalisierung UIModule Proxy-Objekte, vorkompilieren einige reguläre Ausdrücke
  • .

Was ist neu in der Version 3.0.2:

  • tornado.auth.TwitterMixin jetzt standardmäßig die Version 1.1 der Twitter-API anstelle von Version 1.0, die wird am 11. Juni abgebrochen wird Es nutzt auch jetzt HTTPS, wenn es um Twitter.
  • Es wurde ein Potential Speicherleck mit einer langen Kette von gen.coroutine oder gen.engine Funktionen.

Was ist neu in der Version 3.0:

  • Die `` callback`` Argument für viele asynchrone Methoden ist jetzt optional, und diese Methoden geben ein `.Future`. Die `tornado.gen` Modul versteht jetzt` `Futures``, und diese Methoden können direkt ohne` .gen.Task` Wrapper verwendet werden.
  • Neue Funktion `.IOLoop.current` die` .IOLoop`, die auf dem aktuellen Thread ausgeführt wird (im Gegensatz kehrt zu `.IOLoop.instance`, die die (einen bestimmten Thread in der Regel die Hauptthread) IOLoop zurück.
  • Neue Klasse `tornado.netutil.Resolver` bietet eine asynchrone Schnittstelle, um DNS-Auflösung.
  • Neue Klasse `` tornado.process.Subprocess` wickelt subprocess.Popen` mit `.PipeIOStream` Zugriff auf Datei-Deskriptoren des Kindes.
  • `.IOLoop` hat jetzt eine statische` configure & # X3C; .Configurable.configure & # X3e; `Methode wie das auf` .AsyncHTTPClient`, die verwendet werden können, um eine `.IOLoop` Umsetzung ausgenommen die wählen werden Standard. * `.IOLoop` Kann nun wahlweise eine monotone Uhr, falls verfügbar.

Was ist neu in der Version 2.4.1:

  • Es wurde ein Speicherleck in tornado.stack_context, das war besonders wahrscheinlich mit langlauf @ gen.engine Funktionen.
  • tornado.auth.TwitterMixin funktioniert jetzt auch auf Python 3.
  • Ein Fehler wurde behoben, bei dem IOStream.read_until_close mit einem Streaming-Callback manchmal passieren die letzten Datenpaket auf die endgültige Rückruf statt der Streaming-Callback.

Was ist neu in Version 2.4:

  • Fixed Python 3 Bugs in tornado.auth, tornado.locale und tornado.wsgi.
  • OAuthMixin akzeptiert jetzt & quot; oob & quot; als callback_uri.
  • OpenIDMixin nun auch gibt den claimed_id Feld für den Benutzer.
  • tornado.platform.twisted Shutdown-Sequenz ist nun mehr vereinbar ist.
  • Die Protokollierungskonfiguration in tornado.options verwendet ist jetzt toleranter gegenüber Nicht-ASCII-Byte-Zeichenfolgen.

Was ist neu in Version 2.3:

  • `tornado.httpclient.HTTPClient` unterstützt jetzt die gleichen Konstruktor Schlüsselwort-Argumente als `AsyncHTTPClient`.
  • Die `` max_clients`` Schlüsselwort-Argument an `AsyncHTTPClient.configure` funktioniert jetzt.
  • `tornado.simple_httpclient` unterstützt jetzt die` `OPTIONS`` und` `PATCH`` HTTP-Methoden.
  • `tornado.simple_httpclient` ist besser über statt dessen Buchsen Verschließen des so dass sie für die Garbage Collection.
  • `tornado.simple_httpclient` ordnungsgemäß überprüft SSL-Zertifikate für URLs, die IPv6-Literale (Dieser Bug betroffen Python 2.5 und 2.6).
  • `tornado.simple_httpclient` nicht mehr enthalten grundlegende auth Anmeldeinformationen in der` `Host`` Header, wenn diese Anmeldeinformationen aus der URL extrahiert.
  • `tornado.simple_httpclient` nicht mehr modifiziert den Rufer übermittelte Header-Wörterbuch, die Probleme bei der folgenden Weiterleitungen verursacht werden.
  • `tornado.curl_httpclient` unterstützt nun Client-SSL-Zertifikate (mit dem gleichen` `client_cert`` und` `client_key`` Argumente als` tornado.simple_httpclient`.

Was ist neu in der Version 2.2.1:

  • Sicherheitsupdates:
  • `tornado.web.RequestHandler.set_header` nun korrekt desinfiziert Eingangswerte gegen Header-Injection, Response-Splitting usw. zu schützen (es war schon immer versucht, dies zu tun, aber der Scheck war falsch). Beachten Sie, dass Weiterleitungen, die häufigsten Ursachen für solche Fehler werden durch einen separaten Check-in `RequestHandler.redirect` geschützt.
  • Fehlerbehebungen:
  • Colored Protokollierungskonfiguration in `tornado.options` ist mit Python 3.2.3 (und 3.3) kompatibel ist.

Was ist neu in Version 2.2:.

  • aktualisiert und erweitert WebSocket Unterstützung
  • Verbesserte Kompatibilität im Verdreht / Tornado Brücke.
  • Template Fehler erzeugen nun besser Stack-Traces.
  • Bessere Ausnahmebehandlung in `tornado.gen`.

Was ist neu in der Version 2.1.1:

  • Fehlerbehebungen:
  • Die Behandlung von geschlossenen Verbindungen mit dem `` epoll`` (dh Linux) `` IOLoop``. Bisher konnten geschlossene Verbindungen nach unten zu früh abgeschaltet werden, was häufig als & quot manifestiert; Stream ist geschlossen & quot; Ausnahmen in `` SimpleAsyncHTTPClient``.
  • Es wurde ein Fall, in dem aufgeteilte Antworten konnte vorzeitig geschlossen werden, was zu verkürzten Ausgabe.
  • `` IOStream.connect`` meldet jetzt Fehler konsequenter über die Protokollierung und die enge Rückruf (dies betrifft beispielsweise Verbindungen mit FreeBSD localhost).
  • `` IOStream.read_bytes`` wieder akzeptiert sowohl `` int`` und `` long`` Argumente.
  • `` PeriodicCallback`` läuft nicht mehr wiederholt, wenn `` IOLoop`` Iterationen schneller fertig als die Auflösung des `` time.time () `` (vor allem ein Problem unter Windows).

Was ist neu in der Version 2.1.0:

  • DigiNotar vom Standard CA-Zertifikate-Datei entfernt worden von `SimpleAsyncHTTPClient` verwendet
  • Um einige erweiterte Multi-Prozess-Szenarien, `` HTTPServer`` hat eine neue Methode `` add_sockets`` und Socket-Öffnungscode ist separat als `tornado.netutil.bind_sockets` zu erleichtern.
  • Unterstützung für sichere Cookies durch eine pre-1.0 Versionen von Tornado geschrieben wurde entfernt.
  • Windows-Unterstützung wurde verbessert.

Was ist neu in der Version 2.0.0:

  • Wichtige Änderungen:
  • Template Ausgabe wird standardmäßig automatisch entkommen.
  • Der Standard AsyncHTTPClient Umsetzung wird nun simple_httpclient.
  • Python 3.2 wird nun unterstützt.
  • Abwärtskompatibel:
  • Template autoescaping ist standardmäßig aktiviert. Anwendungen ein Upgrade von einer früheren Version des Tornado müssen entweder deaktivieren autoescaping oder deren Vorlagen anpassen, um mit ihm zu arbeiten. Für die meisten Anwendungen ist der einfachste Weg, dies zu tun ist, um autoescape = None, um die Anwendung Konstruktor übergeben.
  • Anwendungen, die weiterhin mit curl_httpclient statt simple_httpclient kann so durch den Aufruf AsyncHTTPClient.configure möchten (& quot; tornado.curl_httpclient.CurlAsyncHTTPClient & quot;) am Anfang des Prozesses. Benutzer von Python 2.5 werden wahrscheinlich wollen curl_httpclient verwenden, wie simple_httpclient unterstützt nur SSL auf Python 2.6 +.
  • Python 3 kompatibel involviert viele Veränderungen in der gesamten Codebasis, so dass die Nutzer sind aufgefordert, ihre Anwendungen gründlicher als üblich zu prüfen, wenn ein Upgrade auf diese Version.
  • Weitere Änderungen in Version 4.1:
  • Vorlagen unterstützen mehrere neue Richtlinien: - {% autoescape ...%}, um zu entkommen Verhalten zu kontrollieren - {% raw ...%} für unescaped Ausgang - {% ...%} Modul zum Aufruf UIModules * {% Modul Template (Pfad, ** kwargs)%} kann nun verwendet werden, um eine andere Vorlage mit einem unabhängigen Namespace nennen werden.
  • Alle iostream Rückrufe sind jetzt laufen direkt auf dem IOLoop über add_callback.
  • Httpserver unterstützt jetzt IPv6, sofern verfügbar. So deaktivieren, übergeben Familien = socket.AF_INET zu HTTPServer.bind ().
  • Httpclient unterstützt jetzt IPv6, konfigurierbar über allow_ipv6 = bool auf der Httprequest. allow_ipv6 Standardwert false für simple_httpclient und wahre auf curl_httpclient.
  • RequestHandlers einen anderen Codierung als UTF-8 für die Abfrageparameter verwenden aus zwingenden decode_argument ().
  • Performance-Verbesserungen, vor allem für Anwendungen, die eine Menge von IOLoop Timeouts zu verwenden.
  • HTTP OPTIONS-Methode erfordert nicht mehr eine XSRF Token.
  • JSON Ausgabe (RequestHandler.write (dict)) setzt jetzt Content-Type auf application / json.
  • Etag Berechnung kann jetzt durch zwingende RequestHandler.compute_etag Gestalten oder deaktiviert werden.
  • USE_SIMPLE_HTTPCLIENT Umgebungsvariable wird nicht mehr unterstützt. Verwenden AsyncHTTPClient.configure statt.

Was ist neu in Version 1.2.1:

  • Diese Mitteilung enthält lediglich zwei kleine Änderungen in Bezug auf die Version 1.2:
  • FacebookGraphMixin wurde aktualisiert, um mit einem letzten Änderung an der Facebook-API arbeiten.
  • Laufen & rdquo; setup.py install & quot; wird nicht mehr versuchen, automatisch pycurl installieren. Dies funktionierte nicht gut auf Plattformen, wo der beste Weg, um pycurl zu installieren, ist so etwas wie apt-get statt easy_install. Dies ist ein wichtiges Upgrade, wenn Sie mit FacebookGraphMixin, aber ansonsten ist es problemlos ignoriert werden können.

Was ist neu in der Version 1.2.0:

  • Diese Veröffentlichung enthält das rückwärts-inkompatible Sicherheits Wechsel von Version 1.1.1.
  • Um transparent zu ersetzen tornado.httpclient.AsyncHTTPClient mit dieser neuen Implementierung können Sie die Umgebungsvariable USE_SIMPLE_HTTPCLIENT = 1
  • gesetzt
  • Anforderungsprotokollierung wird nun von der Anwendung statt der Request getan. Protokollierungsverhalten kann entweder durch Überschreiben Application.log_request in einer Unterklasse oder indem log_function als Anwendungseinstellung angepasst werden.

Was ist neu in der Version 1.1.1:

  • Tornado 1.1.1 ist ein RÜCKWÄRTS-inkompatible Sicherheits Update, das eine Sicherheitslücke behebt XSRF.

Was ist neu in der Version 1.1:

  • Änderungen:
  • RequestHandler.async_callback und verwandte Funktionen in anderen Klassen sind nicht mehr in den meisten Fällen erforderlich (obwohl es harmlos, um fortzufahren
  • mit ihnen). Nicht abgefangene Ausnahmen werden nun bewirken, dass der Antrag auf einmal in einer Callback geschlossen werden. Wenn Sie neugierig sind, wie das funktioniert, finden Sie in der neuen tornado.stack_context Modul.
  • Die neue tornado.testing Modul enthält Unterstützung für Unit-Tests asynchrone IOLoop-basierten Code.
  • AsyncHTTPClient wurde neu geschrieben (die neue Implementierung war so AsyncHTTPClient2 in Tornado 1.0; beide Namen für die Abwärts unterstützt
  • Kompatibilität).
  • Die tornado.auth Modul hat eine Reihe von Updates hatten, einschließlich der Unterstützung für OAuth 2.0 und der Facebook Graph API und Upgrade Twitter und Google unterstützt OAuth 1.0a.
  • Die WebSocket Modul ist zurück und unterstützt die neueste Version (76) des WebSocket-Protokoll. Beachten Sie, dass Schnittstelle dieses Moduls unterscheidet sich von der WebSocket-Modul, das in pre-1.0-Versionen von Tornado erschien.
  • Neue Methode RequestHandler.initialize () kann in Unterklassen, um die Handhabung zu vereinfachen Argumente aus URLSpecs überschrieben werden. Die Reihenfolge der Methoden bei der Initialisierung aufgerufen wird bei http://tornadoweb.org/documentation#overriding-requesthandler-methods dokumentiert
  • get_argument () und verwandte Verfahren nun an PUT-Anfragen zusätzlich zu POST funktionieren.
  • Die Httpclient-Modul unterstützt nun HTTP-Proxies.
  • Wenn Httpserver wird im SSL-Modus ausgeführt wird, ist die SSL-Handshake jetzt nicht blockierend.
  • Viele kleinere Fehlerbehebungen und Aktualisierungen der Dokumentation
  • Abwärtskompatibilität Hinweise:
  • Während die meisten Nutzer von Tornado sollten nicht mit dem stack_context Modul direkt beschäftigen, Nutzer von Worker-Thread-Pools und ähnliche Konstrukte müssen möglicherweise stack_context.wrap verwenden und / oder NullContext um Speicherlecks zu vermeiden.
  • Die neue AsyncHTTPClient funktioniert immer noch mit libcurl Version 7.16.x, aber es arbeitet besser, wenn beide libcurl und pycurl mindestens Version 7.18.2.
  • OAuth Transaktionen unter früheren Versionen der auth-Modul gestartet kann nicht unter dem neuen Modul abgeschlossen werden. Dies gilt nur für die erste Zulassungsverfahren; sobald ein autorisierter Token ausgegeben, dass Token arbeitet mit beiden Versionen.

Anforderungen :

  • Python 2.6 oder höher

Ähnliche Software

Protos
Protos

28 Feb 15

ColdBox
ColdBox

12 May 15

Fresco
Fresco

10 Dec 15

abaaso
abaaso

13 May 15

Andere Software von Entwickler Facebook

Facebook
Facebook

15 Dec 14

Presto
Presto

25 Feb 15

Messenger
Messenger

4 May 20

Ringmark
Ringmark

13 May 15

Kommentare zu Tornado

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!