Tornado

Software skärmdump:
Tornado
Mjukvaruinformation:
Version: 4.3 Uppdaterad
Ladda upp dagen: 10 Dec 15
Utvecklare: Facebook
Licens: Gratis
Popularitet: 9

Rating: 3.0/5 (Total Votes: 2)

I början Facebook byggdes med PHP och MySQL, men eftersom trafiken och nätverkets storlek ökade, så gjorde sitt krav på en bättre och snabbare leverans av innehåll i realtid.

Detta ledde Facebook laget att gräva i andra tekniker och språk utanför PHP, och företaget vände snart sevärdheter att Python, ett programmeringsspråk som används av Google för att bygga upp sin sökmotor.

De ansträngningar laget ledde till en produkt som kallas Tornado, en Python ram särskilt utformade för att fungera med rå HTTP-anslutningar på ett enkelt asynkrona icke-blockerande sätt.

Tornado inspirerades av andra verktyg som Web.py och Googles webapp, men även extra funktioner också.

I centrum av hela ramverket ligger en kraftfull HTTP-server, vilket förstärks av en svit av moduler för att hantera i18n innehåll, stränghantering, produktion generation, asynkrona åtgärder, tredje part kod, loggar, och så vidare.

Förutom Cassandra , är Tornado en av Facebooks mest framgångsrika öppna inköpta program hittills.

Vad är nytt i den här utgåvan :

  • Nya moduler: tornado.locks och tornado.queues

Vad är nytt i version 4.2:

  • Nya moduler: tornado.locks och tornado.queues

Vad är nytt i version 4.1:

  • tornado.web.stream_request_body dekoratör tillåter stora filer att vara laddat med begränsad minnesanvändning.
  • Coroutines är nu snabbare och används i stor utsträckning i hela Tornado själv. Fler metoder nu återvända Futures, inklusive de flesta iostream metoder och RequestHandler.flush.
  • Många användaråsido metoder får nu tillbaka en framtid för flödeskontroll.
  • HTTP-relaterad kod nu delas mellan tornado.httpserver, tornado.simple_httpclient och tornado.wsgi moduler, vilket gör stöd för funktioner som chunked och gzip-kodning mer konsekvent. Httpserver nu använder nya delegera gränssnitt definieras i tornado.httputil utöver sin gamla single-callback-gränssnittet.
  • Ny modul tornado.tcpclient skapar TCP-anslutningar med icke-blockerande DNS, SSL handskakning, och stöd för IPv6.

Vad är nytt i version 3.2.2:

  • XSRF token nu kodas med ett slumpmässigt mask på varje begäran. Det gör det säkert att inkludera i komprimerade sidor utan att vara sårbara för BROTT attacken. Detta gäller de flesta program som använder både xsrf_cookies och gzip alternativ (eller har gzip tillämpas av en proxy).
  • Om Tornado 3.2.2 körs samtidigt som äldre versioner på samma domän, det finns en viss risk för problem med de olika cookies versionerna. Applikationsinställningen xsrf_cookie_version = 1 kan användas under en övergångsperiod för att generera den äldre cookien format på nyare servrar.
  • tornado.platform.asyncio är nu kompatibel med trollius version 0.3.

Vad är nytt i version 3.2.1:

  • Den undertecknade värde format som används av RequestHandler.set_secure_cookie och RequestHandler.get_secure_cookie har ändrats till att vara säkrare. Detta är en omvälvande förändring. De secure_cookie funktioner ta nya versionen parametrar för att stödja övergångar mellan cookies format.
  • ny cookie-formatet korrigerar en säkerhetsrisk som kan förekomma i program som använder flera cookies där namnet på en cookie är ett prefix i namnet på en annan.
  • För att minimera störningar, kommer cookies i det äldre formatet godtas som standard tills de löper ut. Program som kan vara utsatta kan avvisa alla cookies i det äldre formatet genom att min_version = 2 till RequestHandler.get_secure_cookie.

Vad är nytt i version 3.2:

  • Ny ansökan inställning default_handler_class kan användas för att enkelt ställa in anpassade 404 sidor.
  • Ny programinställningar autoreload, compiled_template_cache, static_hash_cache och serve_traceback kan användas för att styra enskilda aspekter av debugläge.
  • Nya metoder RequestHandler.get_query_argument och RequestHandler.get_body_argument och nya attribut HTTPRequest.query_arguments och HTTPRequest.body_arguments ge tillgång till argument utan sammanblandning de från frågesträngen med de från begäran kroppen.
  • RequestHandler.decode_argument och relaterade metoder höja nu en httperror (400) i stället för UnicodeDecodeError när argumentet inte kunde avkodas.
  • RequestHandler.clear_all_cookies accepterar nu domän och sökväg argument, precis som clear_cookie.
  • Det är nu möjligt att ange hanterare vid namn när du använder URLSpec klassen.
  • Application accepterar nu 4-tupler att ange parametern name (som tidigare krävde att bygga en URLSpec objekt i stället för en tupel).
  • Fixat ett felaktigt felmeddelande när föraren metoder returnera ett annat än Ingen eller en framtid värde.
  • Undantag kommer inte längre att logga två gånger när man använder bådeasynchronous och @ gen.coroutine.

Vad är nytt i version 3.1:

  • Många referenscykler har brutits upp hela paketet, vilket gör att för effektivare sophämtning på CPython.
  • tystas några loggmeddelanden när anslutningar öppnas och stängas omedelbart (dvs portskanningar), eller andra situationer med anknytning till stängda anslutningar.
  • Olika små uppsnabbningar: HTTPHeaders fall normalisering, UIModule proxyobjekt, förkompilerar några regexes
  • .

Vad är nytt i version 3.0.2:

  • tornado.auth.TwitterMixin nu standard version 1.1 av Twitter API, i stället för version 1.0 som är under avveckling på Juni 11. Det nu använder också HTTPS när man talar till Twitter.
  • Fixat en potentiell minnesläcka med en lång kedja av gen.coroutine eller gen.engine funktioner.

Vad är nytt i version 3.0:

  • `` callback`` argument till många asynkrona metoder är nu frivilliga, och dessa metoder returnera ett `.Future`. Den `tornado.gen` Modulen förstår nu` `Futures``, och dessa metoder kan användas direkt utan` .gen.Task` omslag.
  • Ny funktion `.IOLoop.current` returnerar` .IOLoop` som körs på den aktuella tråden (i motsats till `.IOLoop.instance`, som returnerar en specifik tråd är (oftast den röda tråden är) IOLoop.
  • Ny klass `tornado.netutil.Resolver` ger ett asynkront gränssnitt till DNS-upplösning.
  • Ny klass `tornado.process.Subprocess` sveper` subprocess.Popen` med `.PipeIOStream` tillgång till barnets fil deskriptorer.
  • '.IOLoop` har nu en statisk' configure & # x3c; .Configurable.configure & # x3e; 'metod som den en på' .AsyncHTTPClient`, som kan användas för att välja en 'implementering .IOLoop` annan än den default. * `.IOLoop` Kan nu eventuellt använda en monoton klocka om det finns.

Vad är nytt i version 2.4.1:

  • Fast en minnesläcka i tornado.stack_context som var särskilt troligt med långvariga @ gen.engine funktioner.
  • tornado.auth.TwitterMixin arbetar nu på Python 3.
  • Fixade en bugg där IOStream.read_until_close med en strömmande återuppringning skulle ibland passera sista bit av data till den slutliga återuppringning i stället för strömmande callback.

Vad är nytt i version 2.4:

  • Fast Python 3 buggar i tornado.auth, tornado.locale och tornado.wsgi.
  • OAuthMixin nu accepterar & quot; oob & quot; som callback_uri.
  • OpenIDMixin nu även returnerar claimed_id fält för användaren.
  • tornado.platform.twisted avstängningssekvens är nu mer kompatibla.
  • Loggnings konfiguration som används i tornado.options är nu mer tolerant icke-ascii byte strängar.

Vad är nytt i version 2.3:

  • `tornado.httpclient.HTTPClient` stöder nu samma konstruktören sökords argument som `AsyncHTTPClient`.
  • `` max_clients`` sökord argument till `AsyncHTTPClient.configure` fungerar nu.
  • `tornado.simple_httpclient` stöder nu` `OPTIONS`` och` `PATCH`` HTTP metoder.
  • `tornado.simple_httpclient` är bättre om du stänger sina sockets istället för att lämna dem för sophämtning.
  • `tornado.simple_httpclient` verifierar korrekt SSL-certifikat för webbadresser som innehåller IPv6 litteraler (Detta fel påverkade Python 2.5 och 2.6).
  • `tornado.simple_httpclient` inte längre innehåller grundläggande auth referenser i` `Host`` header när dessa referenser utvinns ur URL.
  • `tornado.simple_httpclient` inte längre modifierar ringer matade header ordbok, vilket orsakade problem när man följer omdirigeringar.
  • `tornado.curl_httpclient` stöder nu klient SSL-certifikat (med samma` `client_cert`` och` `client_key`` argument` tornado.simple_httpclient`.

Vad är nytt i version 2.2.1:

  • Säkerhetsrättelser:
  • `tornado.web.RequestHandler.set_header` nu korrekt sanerar ingångsvärden för att skydda mot huvudet injektion, svars delning, etc. (det har alltid försökt att göra detta, men kontrollen var felaktigt). Observera att omdirigeringar, den mest sannolika källan till sådana fel, skyddas av en separat kontroll i `RequestHandler.redirect`.
  • Buggfixar:
  • Kulört loggning konfiguration i `tornado.options` är kompatibel med Python 3.2.3 (och 3.3).

Vad är nytt i version 2.2.

  • uppdateras och utökas WebSocket stöd
  • Förbättrad kompatibilitet i Twisted / Tornado bro.
  • Mall fel nu generera bättre stack spår.
  • Bättre undantagshantering i `tornado.gen`.

Vad är nytt i version 2.1.1:

  • Buggfixar:
  • Fixat hantering av slutna förbindelser med `` epoll`` (dvs Linux) `` IOLoop``. Tidigare kunde stängda anslutningar stängas för tidigt, vilket oftast manifesterad som & quot; Stream är stängd & quot; undantag i `` SimpleAsyncHTTPClient``.
  • Fixat ett fall där chunked svar kunde avslutas i förtid, vilket leder till stympad utgång.
  • `` IOStream.connect`` rapporterar nu fel mer konsekvent via loggning och nära callback (detta påverkar exempelvis anslutningar localhost på FreeBSD).
  • `` IOStream.read_bytes`` igen accepterar både `` int`` och `` long`` argument.
  • `` PeriodicCallback`` körs inte längre upprepade gånger när `` IOLoop`` iterationer slutföra snabbare än upplösningen av `` time.time () `` (främst ett problem i Windows).

Vad är nytt i version 2.1.0:

  • DigiNotar har tagits bort från standard CA-certifikat fil används av `SimpleAsyncHTTPClient`
  • För att underlätta en del avancerade multiprocess scenarier, `` HTTPServer`` har en ny metod `` add_sockets`` och sockelöppningskoden är tillgänglig separat som `tornado.netutil.bind_sockets`.
  • Stöd för säkra cookies skrivna av pre-1,0 versioner av Tornado har tagits bort.
  • Windows stöd har förbättrats.

Vad är nytt i version 2.0.0:

  • Stora förändringar:
  • Mall utgång automatiskt undan som standard.
  • Genomförandet Standard AsyncHTTPClient nu simple_httpclient.
  • Python 3.2 stöds nu.
  • Bakåtkompatibilitet:
  • Mall autoescaping är aktiverad som standard. Ansökningar uppgradering från en tidigare version av Tornado måste antingen inaktivera autoescaping eller anpassa sina mallar för att arbeta med det. För de flesta tillämpningar är det enklaste sättet att göra detta för att passera autoescape = Inget till program konstruktören.
  • Program som vill fortsätta använda curl_httpclient istället för simple_httpclient kan göra detta genom att ringa AsyncHTTPClient.configure (& quot; tornado.curl_httpclient.CurlAsyncHTTPClient & quot;) i början av processen. Användare av Python 2.5 kommer förmodligen vill använda curl_httpclient som simple_httpclient stöder endast ssl på Python 2.6 +.
  • Python 3 kompatibilitet involverade många förändringar under kodbasen, så att användarna uppmanas att testa sina program mer noggrant än vanligt när du uppgraderar till den här versionen.
  • Andra förändringar i version 4.1:
  • Mallar stöd för flera nya direktiv: - {% autoescape ...%} att kontrollera fly beteende - {% rå ...%} för oskyddat utgång - {% modul ...%} för att ringa UIModules * {% modul mall (väg, ** kwargs)%} kan nu användas för att ringa en annan mall med en oberoende namnområde.
  • Alla iostream callbacks är nu köras direkt på IOLoop via add_callback.
  • Httpserver stöder nu IPv6 där sådana finns. För att avaktivera, passera familjen = socket.AF_INET till HTTPServer.bind ().
  • Httpclient stöder nu IPv6, konfigurerbara via allow_ipv6 = bool på httprequest. allow_ipv6 standard false på simple_httpclient och sant på curl_httpclient.
  • RequestHandlers kan använda en annan kodning än UTF-8 för frågeparametrar genom att åsidosätta decode_argument ().
  • Prestandaförbättringar, särskilt för program som använder en hel del IOLoop timeout.
  • HTTP ALTERNATIV metod kräver inte längre en XSRF token.
  • JSON utgång (RequestHandler.write (dict)) ställer nu Content-Type till application / json.
  • ETAG beräkning kan nu anpassas eller inaktiveras av tvingande RequestHandler.compute_etag.
  • stöds inte längre USE_SIMPLE_HTTPCLIENT miljövariabeln. Använd AsyncHTTPClient.configure istället.

Vad är nytt i version 1.2.1:

  • Den här versionen innehåller bara två små förändringar i förhållande till version 1.2:
  • FacebookGraphMixin har uppdaterats för att arbeta med en ny förändring Facebook API.
  • Springa & quot; setup.py installera & quot; kommer inte längre att försöka att automatiskt installera pycurl. Detta fungerade inte bra på plattformar där det bästa sättet att installera pycurl är via något liknande apt-get istället för easy_install. Detta är en viktig uppgradering om du använder FacebookGraphMixin, men annars kan ignoreras.

Vad är nytt i version 1.2.0:

  • Detta inkluderar släpper bakåt inkompatibla säkerhets förändring från version 1.1.1.
  • För att öppet ersätta tornado.httpclient.AsyncHTTPClient med denna nya tillämpning, kan du ställa in miljövariabeln USE_SIMPLE_HTTPCLIENT = 1
  • Begär loggning görs nu av applikations snarare än RequestHandler. Logga beteende kan anpassas antingen genom tvingande Application.log_request i en underklass eller genom att log_function som en Application inställning.

Vad är nytt i version 1.1.1:

  • Tornado 1.1.1 är en bakåt oförenlig säkerhet uppdatering som åtgärdar ett XSRF sårbarhet.

Vad är nytt i version 1.1:

  • Ändringar:
  • RequestHandler.async_callback och relaterade funktioner i andra klasser inte längre behövs i de flesta fall (även om det är ofarligt att fortsätta
  • med dem). Ohanterade undantag kommer nu leda till att begäran ska stängas även i en återuppringning. Om du är nyfiken på hur det fungerar, se den nya tornado.stack_context modulen.
  • Den nya tornado.testing Modulen innehåller stöd för enhetstestning asynkron IOLoop-baserad kod.
  • AsyncHTTPClient har skrivits om (den nya genomförande fanns som AsyncHTTPClient2 i Tornado 1,0; båda namnen stöds för bakåt
  • kompatibilitet).
  • tornado.auth modulen har haft ett antal uppdateringar, inklusive stöd för OAuth 2.0 och Facebook Graph API, och uppgradera Twitter och Google stöd till OAuth 1.0a.
  • WebSocket modulen är tillbaka och stöder den senaste versionen (76) i WebSocket protokollet. Observera att denna modul gränssnitt skiljer sig från WebSocket modul som dök upp i pre-1,0 versioner av Tornado.
  • Ny metod RequestHandler.initialize () kan åsidosättas i underklasser för att förenkla hantering argument från URLSpecs. Sekvensen av metoder som kallas under initieringen dokumenteras på http://tornadoweb.org/documentation#overriding-requesthandler-methods
  • get_argument () och tillhörande metoder fungerar nu PUT begäran utöver POST.
  • Httpclient Modulen stöder nu HTTP proxies.
  • När Httpserver körs i SSL-läge, är SSL handskakning nu icke-blockerande.
  • Många mindre buggfixar och uppdateringar dokumentation

  • anteckningar
  • bakåtkompatibilitets:
  • Medan de flesta användare av Tornado inte ska behöva ta itu med stack_context modulen direkt, användare av arbetstagarnas tråd pooler och liknande konstruktioner kan behöva använda stack_context.wrap och / eller NullContext att undvika minnesläckor.
  • Den nya AsyncHTTPClient arbetar fortfarande med libcurl version 7.16.x, men den presterar bättre när både libcurl och pycurl är minst version 7.18.2.
  • OAuth transaktioner startade enligt tidigare versioner av auth modulen kan inte slutföras inom ramen för den nya modulen. Detta gäller endast den första auktorisationsförfarandet; när en auktoriserad token utfärdas den token arbetar med antingen version.

Krav :

  • Python 2.6 eller högre

Liknande mjukvara

CakePHP
CakePHP

25 May 16

ReactiveUI
ReactiveUI

6 Jun 15

BlueJacket
BlueJacket

1 Mar 15

Annan programvara för utvecklare Facebook

XHP
XHP

1 Oct 15

Kommentarer till Tornado

Kommentarer hittades inte
Kommentar
Slå på bilder!