Tornado

Software screenshot:
Tornado
Dettagli del software:
Versione: 4.3 Aggiornato
Data di caricamento: 10 Dec 15
Sviluppatore: Facebook
Licenza: Libero
Popolarità: 9

Rating: 3.0/5 (Total Votes: 2)

In principio Facebook è stato costruito utilizzando PHP e MySQL, ma come il traffico e le dimensioni della rete aumentato, così ha fatto le sue esigenze per una consegna migliore e più veloce di contenuti in tempo reale.

Questo ha portato il team di Facebook per approfondire altre tecnologie e linguaggi di fuori PHP, e la società presto trasformò viste per Python, un linguaggio di programmazione utilizzato da Google per costruire il suo motore di ricerca.

Gli sforzi della squadra hanno portato in un prodotto chiamato Tornado, un framework Python specificamente progettato per funzionare con connessioni HTTP prime in un semplice modo asincrono non bloccante.

Tornado è stato ispirato da altri strumenti come Web.py e Google di webapp, ma include anche funzionalità aggiuntive come bene.

Al centro di tutto il quadro risiede un server HTTP potente, che si arricchisce di una serie di moduli per la gestione di contenuti i18n, manipolazione di stringhe, generazione di uscita, operazioni asincrone, codice di terze parti, tronchi, e così via.

Oltre Cassandra , Tornado è uno dei più riusciti aperte applicazioni Sourced di Facebook ad oggi.

Cosa c'è di nuovo in questa versione :

  • Nuovi moduli: tornado.locks e tornado.queues

Cosa c'è di nuovo nella versione 4.2:

  • Nuovi moduli: tornado.locks e tornado.queues

Cosa c'è di nuovo nella versione 4.1:

  • Il decoratore tornado.web.stream_request_body permette file di grandi dimensioni di essere caricato con l'utilizzo di memoria limitata.
  • coroutine sono ora più veloce e sono ampiamente utilizzati in tutta Tornado sé. Altri metodi ora restituiscono Futures, tra cui la maggior parte dei metodi di iostream e RequestHandler.flush.
  • Molti metodi dall'utente ignorato sono ora autorizzati a restituire un futuro per il controllo del flusso.
  • code HTTP correlati è ora condivisa tra i moduli tornado.httpserver, tornado.simple_httpclient e tornado.wsgi, rendendo il supporto per funzionalità quali Chunked e la codifica gzip più coerente. HTTPServer ora utilizza le nuove interfacce delegati definiti tornado.httputil oltre alla sua vecchia interfaccia singola di callback.
  • Nuovo modulo tornado.tcpclient crea connessioni TCP con non-blocking DNS, handshake SSL, e il supporto per IPv6.

Cosa c'è di nuovo nella versione 3.2.2:

  • Il token XSRF è ora codificato con una maschera a caso su ogni richiesta. Questo lo rende sicuro di includere nelle pagine compresse senza essere vulnerabile all'attacco VIOLAZIONE. Questo vale per la maggior parte delle applicazioni che utilizzano sia le xsrf_cookies e le opzioni di gzip (o hanno gzip applicato da un proxy).
  • Se Tornado 3.2.2 viene eseguito contemporaneamente come le versioni precedenti sullo stesso dominio, c'è qualche possibilità di problemi con le versioni biscotto differenti. Il xsrf_cookie_version impostazione Application = 1 può essere utilizzato per un periodo di transizione per generare il formato biscotto anziani in server più recenti.
  • tornado.platform.asyncio è ora compatibile con trollius versione 0.3.

Cosa c'è di nuovo nella versione 3.2.1:

  • Il formato del valore firmato utilizzato da RequestHandler.set_secure_cookie e RequestHandler.get_secure_cookie è cambiato per essere più sicuri. Si tratta di un cambiamento dirompente. Le funzioni secure_cookie prendono nuovi parametri della versione per sostenere le transizioni tra i formati di biscotti.
  • Il nuovo formato biscotto corregge una vulnerabilità che può essere presente in applicazioni che utilizzano più i biscotti in cui il nome di un cookie è un prefisso del nome di un altro.
  • Per minimizzare i disagi, i biscotti nel vecchio formato saranno accettate per difetto fino alla loro scadenza. Le applicazioni che potrebbero essere vulnerabili può rifiutare tutti i cookie nel formato più vecchio passando min_version = 2 per RequestHandler.get_secure_cookie.

Cosa c'è di nuovo nella versione 3.2:

  • Nuova impostazione default_handler_class applicazione può essere utilizzata per impostare facilmente personalizzato 404 pagine.
  • Nuovo impostazioni dell'applicazione autoreload, compiled_template_cache, static_hash_cache, e serve_traceback può essere utilizzato per controllare singoli aspetti di modalità di debug.
  • Nuovi metodi RequestHandler.get_query_argument e RequestHandler.get_body_argument e nuovi attributi HTTPRequest.query_arguments e HTTPRequest.body_arguments consentono l'accesso agli argomenti senza mescolanza quelli della stringa di query con quelli del corpo della richiesta.
  • RequestHandler.decode_argument e relativi metodi ora alzano un HTTPError (400) invece di UnicodeDecodeError quando l'argomento non poteva essere decodificato.
  • RequestHandler.clear_all_cookies ora accetta di dominio e di percorso argomenti, proprio come clear_cookie.
  • È ora possibile specificare gestori per nome quando si utilizza la classe URLSpec.
  • Application ora accetta 4-tuple per specificare il parametro nome (che in precedenza richiesto la costruzione di un oggetto URLSpec invece di una tupla).
  • Risolto un messaggio di errore non corretto quando i metodi dei gestori restituiscono un valore diverso da None o un futuro.
  • Eccezioni non sarà più registrato due volte quando si utilizzano sia gen.coroutineAsynchronous e @.

Cosa c'è di nuovo nella versione 3.1:

  • Molti cicli di riferimento sono stati rotto per tutto il pacchetto, permettendo per più efficiente la raccolta dei rifiuti in CPython.
  • silenziato alcuni messaggi di log quando le connessioni sono aperte e subito chiuse (cioè scansione delle porte), o di altre situazioni legate alle connessioni chiuse.
  • Una varietà di piccoli incrementi nella velocità: HTTPHeaders caso, la normalizzazione, gli oggetti proxy UIModule, precompilare alcune espressioni regolari
  • .

Cosa c'è di nuovo nella versione 3.0.2:

  • tornado.auth.TwitterMixin ora di default alla versione 1.1 delle API di Twitter, invece della versione 1.0, che è stato sospeso il 11 giugno E 'anche ora utilizza HTTPS quando si parla di Twitter.
  • Risolto un potenziale perdita di memoria con una lunga catena di funzioni gen.coroutine o gen.engine.

Cosa c'è di nuovo nella versione 3.0:

  • Il `` argomento callback`` a molti metodi asincroni è ora opzionali e questi metodi restituiscono un `.Future`. Il modulo `tornado.gen` ora capisce` `Futures``, e questi metodi possono essere utilizzati direttamente senza` .gen.Task` involucro.
  • Nuova funzione `.IOLoop.current` restituisce il` .IOLoop` in esecuzione sul thread corrente (al contrario di `.IOLoop.instance`, che restituisce in genere del thread principale) IOLoop di (un thread specifico.
  • Nuova classe `tornado.netutil.Resolver` fornisce un'interfaccia asincrona per la risoluzione DNS.
  • Nuova classe `tornado.process.Subprocess` avvolge` subprocess.Popen` con `accesso .PipeIOStream` a descrittori di file del bambino.
  • `.IOLoop` ora ha un` configure & # x3c statica; .Configurable.configure & # X3e; `metodo come quello su` .AsyncHTTPClient`, che può essere usato per selezionare una implementazione `.IOLoop` diverso da quello predefinito. * `.IOLoop` Ora possibile utilizzare opzionalmente un orologio monotona, se disponibile.

Cosa c'è di nuovo nella versione 2.4.1:

  • Risolto un problema di memoria in tornado.stack_context che era soprattutto probabilmente con funzioni di lunga esecuzione @ gen.engine.
  • tornado.auth.TwitterMixin ora funziona su Python 3.
  • Corretto un bug in cui IOStream.read_until_close con un callback di streaming a volte passare l'ultimo blocco di dati al richiamo finale al posto del callback streaming.

Cosa c'è di nuovo nella versione 2.4:

  • fissi Python 3 bug nel tornado.auth, tornado.locale , e tornado.wsgi.
  • OAuthMixin accetta ora & quot; oob & quot; come callback_uri.
  • OpenIDMixin ora restituisce anche il campo claimed_id per l'utente.
  • sequenza di chiusura tornado.platform.twisted è ora più compatibile.
  • La configurazione di registrazione utilizzata in tornado.options ora è più tollerante di stringhe di byte non-ascii.

Cosa c'è di nuovo nella versione 2.3:

  • `tornado.httpclient.HTTPClient` ora supporta lo stesso costruttore argomenti chiave come `AsyncHTTPClient`.
  • Il `` argomento chiave max_clients`` a `AsyncHTTPClient.configure` ora funziona.
  • `tornado.simple_httpclient` ora supporta la` `OPTIONS`` e` `metodi PATCH`` HTTP.
  • `tornado.simple_httpclient` è migliore di chiudere le sue basi, invece di partire per la raccolta dei rifiuti.
  • `tornado.simple_httpclient` verifica correttamente i certificati SSL per gli URL che contengono letterali IPv6 (Questo bug influenzato Python 2.5 e 2.6).
  • `tornado.simple_httpclient` non include più le credenziali di autenticazione base del` intestazione `Host`` quando tali credenziali vengono estratti dal URL.
  • `tornado.simple_httpclient` non modifica l'intestazione dizionario fornito dal chiamante, che ha causato problemi nel seguire reindirizzamenti.
  • `tornado.curl_httpclient` ora supporta i certificati SSL client (utilizzando lo stesso` `client_cert`` e` `argomenti client_key`` come` tornado.simple_httpclient`.

Cosa c'è di nuovo nella versione 2.2.1:

  • correzioni di sicurezza:
  • `tornado.web.RequestHandler.set_header` ora disinfetta correttamente i valori di input per la protezione contro un colpo di testa di iniezione, la scissione di risposta, ecc (che ha sempre cercato di fare questo, ma il controllo è stato corretto). Nota che reindirizza, la fonte più probabile di questi bug, sono protetti da un controllo separato in `RequestHandler.redirect`.
  • Correzioni di bug:
  • configurazione di registrazione colorata in `tornado.options` è compatibile con Python 3.2.3 (e 3.3).

Cosa c'è di nuovo nella versione 2.2:.

  • Supporto WebSocket aggiornato e ampliato
  • Migliorata la compatibilità nel Twisted ponte / Tornado.
  • errori modello ora generano migliori tracce dello stack.
  • Una migliore gestione in `tornado.gen` eccezione.

Cosa c'è di nuovo nella versione 2.1.1:

  • Correzioni di bug:
  • trattamento fisso di connessioni chiuse con il `` epoll`` (cioè Linux) `` IOLoop``. In precedenza, le connessioni chiuse potrebbero essere chiusi troppo presto, che il più delle volte si manifesta come & quot; flusso è chiuso & quot; eccezioni in `` SimpleAsyncHTTPClient``.
  • Risolto un caso in cui le risposte chunked potrebbe essere chiusa prematuramente, con conseguente uscita troncato.
  • `` IOStream.connect`` ora riporta gli errori in modo più coerente con la registrazione e la stretta di richiamata (questo riguarda ad esempio le connessioni a localhost su FreeBSD).
  • `` IOStream.read_bytes`` accetta di nuovo sia `` int`` e `` argomenti long``.
  • `` PeriodicCallback`` non funziona ripetutamente quando `` iterazioni IOLoop`` completano più velocemente rispetto alla risoluzione di `` time.time () `` (principalmente un problema su Windows).

Cosa c'è di nuovo nella versione 2.1.0:

  • Diginotar è stato rimosso dal file certificati CA di default utilizzato da `SimpleAsyncHTTPClient`
  • Per facilitare alcuni scenari multi-processo avanzate, `` HTTPServer`` ha un nuovo metodo `` add_sockets``, e il codice di presa di apertura è disponibile separatamente come `tornado.netutil.bind_sockets`.
  • Il supporto per i cookie sicuri scritte da pre-release 1.0 di Tornado è stato rimosso.
  • è stato migliorato il supporto di Windows.

Cosa c'è di nuovo nella versione 2.0.0:

  • I maggiori cambiamenti:
  • uscita Template è scampata automaticamente per impostazione predefinita.
  • L'implementazione AsyncHTTPClient predefinito è ora simple_httpclient.
  • Python 3.2 è ora supportato.
  • retrocompatibilità:
  • Modello autoescaping è abilitato di default. Applicazioni aggiornamento da una versione precedente di Tornado deve o disabilitare autoescaping o adattare i propri modelli per lavorare con esso. Per la maggior parte delle applicazioni, il modo più semplice per farlo è quello di passare autoescape = Nessuno al costruttore Application.
  • Le applicazioni che desiderano continuare ad utilizzare curl_httpclient invece di simple_httpclient può farlo chiamando AsyncHTTPClient.configure (& quot; tornado.curl_httpclient.CurlAsyncHTTPClient & quot;) all'inizio del processo. Gli utenti di Python 2.5 probabilmente vorranno utilizzare curl_httpclient come simple_httpclient supporta solo SSL su Python 2.6 +.
  • Python 3 compatibilità coinvolto molti cambiamenti in tutto il codice di base, per cui gli utenti sono invitati a testare più a fondo rispetto al solito le loro applicazioni durante l'aggiornamento a questa versione.
  • Altre novità della versione 4.1:
  • Modelli supportano diverse nuove direttive: - {% autoescape ...%} per controllare la fuga comportamento - {% crudo ...%} per l'uscita escape - {% modulo ...%} per chiamare UIModules * {modulo% Template (percorso, ** kwargs)%} possono ora essere utilizzati per chiamare un altro modello con uno spazio dei nomi indipendente.
  • Tutti i callback iostream sono ora gestita direttamente sul IOLoop via add_callback.
  • HTTPServer ora supporta IPv6, se disponibili. Per disattivare, passare famiglia = socket.AF_INET a HTTPServer.bind ().
  • HTTPClient ora supporta IPv6, configurabile tramite allow_ipv6 = bool sul HTTPRequest. allow_ipv6 default è false su simple_httpclient e vera su curl_httpclient.
  • RequestHandlers può usare una codifica diversa da UTF-8 per i parametri di query sovrascrivendo decode_argument ().

  • miglioramenti
  • prestazioni, soprattutto per le applicazioni che utilizzano un sacco di IOLoop timeout.
  • HTTP metodo OPZIONI non richiede più un gettone XSRF.
  • uscita JSON (RequestHandler.write (dict)) ora stabilisce Content-Type a application / json.
  • Etag calcolo può ora essere personalizzata o disattivato sovrascrivendo RequestHandler.compute_etag.
  • variabile d'ambiente USE_SIMPLE_HTTPCLIENT non è più supportato. Usa AsyncHTTPClient.configure invece.

Cosa c'è di nuovo nella versione 1.2.1:

  • Questa versione contiene solo due piccole modifiche rispetto alla versione 1.2:
  • FacebookGraphMixin è stato aggiornato per funzionare con una recente modifica alle API di Facebook.
  • Correre & quot; setup.py install & quot; non sarà più tenterà di installare automaticamente pycurl. Questo non funzionava bene su piattaforme in cui il modo migliore per installare pycurl è via qualcosa come apt-get invece di easy_install. Si tratta di un aggiornamento importante se si utilizza FacebookGraphMixin, ma per il resto può essere ignorato.

Cosa c'è di nuovo nella versione 1.2.0:

  • Questa versione include la modifica di protezione retro-compatibile da versione 1.1.1.
  • Per sostituire in modo trasparente tornado.httpclient.AsyncHTTPClient con questa nuova implementazione, è possibile impostare l'ambiente USE_SIMPLE_HTTPCLIENT variabile = 1
  • Richiesta di registrazione è ora fatto dalla applicazione, piuttosto che il RequestHandler. Comportamento di registrazione può essere personalizzato sia l'override Application.log_request in una sottoclasse o passando log_function come un ambiente di applicazione.

Cosa c'è di nuovo nella versione 1.1.1:

  • Tornado 1.1.1 è un titolo retro-INCOMPATIBILI aggiornamento che risolve una vulnerabilità XSRF.

Cosa c'è di nuovo nella versione 1.1:

  • Modifiche:
  • RequestHandler.async_callback e relativi funzioni in altre classi non sono più necessari in molti casi (anche se è innocuo per continuare
  • li utilizzano). Le eccezioni non rilevate ora causare la richiesta di essere chiusa anche in un callback. Se siete curiosi come funziona, vedere il nuovo modulo tornado.stack_context.
  • Il nuovo modulo tornado.testing contiene il supporto per il codice basato su IOLoop unit test asincrono.
  • AsyncHTTPClient è stato riscritto (la nuova implementazione era disponibile come AsyncHTTPClient2 in Tornado 1.0; entrambi i nomi sono supportati per all'indietro
  • compatibilità).
  • Il modulo tornado.auth ha avuto una serie di aggiornamenti, incluso il supporto per OAuth 2.0 e le API di Facebook Graph, e l'aggiornamento di sostegno Twitter e Google per OAuth 1.0a.
  • Il modulo websocket è tornato e supporta l'ultima versione (76) del protocollo websocket. Si noti che l'interfaccia di questo modulo è diverso dal modulo websocket che è apparso in pre-1.0 versioni del Tornado.
  • Nuovo metodo RequestHandler.initialize () può essere sottoposto a override in sottoclassi per semplificare gli argomenti di manipolazione da URLSpecs. La sequenza dei metodi di chiamata durante l'inizializzazione è documentato a http://tornadoweb.org/documentation#overriding-requesthandler-methods
  • get_argument () e dei relativi metodi di ora funzionano sulle richieste PUT, oltre a POST.
  • Il modulo httpclient ora supporta i proxy HTTP.
  • Quando HTTPServer viene eseguito in modalità SSL, l'handshake SSL è ora non-blocking.
  • Molte correzioni più piccolo bug e aggiornamenti della documentazione

  • note
  • retrocompatibilità:
  • Mentre la maggior parte degli utenti di Tornado non dovrebbero avere a che fare con il modulo stack_context direttamente, gli utenti di lavoratori pool di thread e costrutti simili possono essere necessario utilizzare stack_context.wrap e / o NullContext per evitare perdite di memoria.
  • Il nuovo AsyncHTTPClient funziona ancora con la versione libcurl 7.16.x, ma si comporta meglio quando entrambi libcurl e pycurl sono almeno alla versione 7.18.2.

  • transazioni
  • OAuth iniziate nelle versioni precedenti del modulo auth non può essere completata con il nuovo modulo. Questo vale solo per il processo di autorizzazione iniziale; una volta che un token autorizzato viene emesso quella pedina funziona con entrambe le versioni.

Requisiti :

  • Python 2.6 o superiore

Programmi simili

Spark
Spark

6 Mar 16

Atoms.js
Atoms.js

1 Oct 15

MEAN
MEAN

19 Jul 15

Hobo
Hobo

10 Dec 15

Altri software di sviluppo Facebook

Real Time Proxy
Real Time Proxy

21 Jul 15

HHVM
HHVM

5 Jun 15

Facebook PHP SDK
Facebook PHP SDK

10 Dec 15

Commenti a Tornado

I commenti non trovato
Aggiungi commento
Accendere le immagini!
Ricerca per categoria