Tornado

Logiciel capture d'écran:
Tornado
Détails logiciels:
Version: 4.3 Mise à jour
Date de transfert: 10 Dec 15
Développeur: Facebook
Licence: Gratuit
Popularité: 9

Rating: 3.0/5 (Total Votes: 2)

Au début Facebook a été construit en utilisant PHP et MySQL, mais que le trafic et la taille du réseau a augmenté, tout comme ses besoins pour une livraison meilleure et plus rapide du contenu en temps réel.

Cela a conduit l'équipe de Facebook de se plonger dans d'autres technologies et langages PHP à l'extérieur, et l'entreprise a vite transformé sites à Python, un langage de programmation utilisé par Google pour créer son moteur de recherche.

Les efforts de l'équipe ont abouti en un produit appelé Tornado, un cadre de Python spécifiquement conçu pour fonctionner avec des connexions HTTP premières dans un moyen simple asynchrone non-bloquant.

Tornado a été inspiré par d'autres outils comme webapp Web.py et Google, mais inclut également des fonctionnalités supplémentaires ainsi.

Au centre de l'ensemble du cadre réside un serveur HTTP puissant, qui est renforcée par une suite de modules pour traiter les contenus i18n, manipulation de chaînes, la génération de sortie, les opérations asynchrones, code tiers, les journaux, et ainsi de suite.

Outre Cassandra , Tornado est l'un des plus réussis applications sourcés ouvertes de Facebook à ce jour.

Ce qui est nouveau dans ce communiqué :

  • Nouveaux modules: tornado.locks et tornado.queues

Ce qui est nouveau dans la version 4.2:

  • Nouveaux modules: tornado.locks et tornado.queues

Quoi de neuf dans la version 4.1:

  • Le décorateur tornado.web.stream_request_body permet gros fichiers d'être téléchargé avec utilisation de la mémoire limitée.
  • Coroutines sont maintenant plus rapides et sont largement utilisés tout au long de Tornado lui-même. Plus de méthodes retournent maintenant Futures, y compris la plupart des méthodes IOstream et RequestHandler.flush.
  • Beaucoup de méthodes de substitution à l'utilisateur sont désormais autorisés à retourner un avenir pour le contrôle de flux.
  • le code HTTP liées à l'est maintenant partagé entre les modules tornado.httpserver, tornado.simple_httpclient et tornado.wsgi, rendant le support de fonctionnalités telles que fragmenté et l'encodage gzip plus cohérente. HTTPServer utilise maintenant de nouvelles interfaces de délégué définis dans tornado.httputil en plus de son ancienne interface simple rappel.
  • Nouveau module tornado.tcpclient crée des connexions TCP avec non-blocage DNS, SSL handshake, et le soutien pour IPv6.

Ce qui est nouveau dans la version 3.2.2:

  • Le jeton XSRF est maintenant encodé avec un masque aléatoire à chaque demande. Cela rend-il sûr d'inclure dans les pages compressées sans être vulnérable à l'attaque de violation. Cela vaut pour la plupart des applications qui utilisent à la fois les xsrf_cookies et options de gzip (ou avoir gzip appliquée par un proxy).
  • Si Tornado 3.2.2 est exécuté en même temps que les versions plus anciennes sur le même domaine, il ya un certain potentiel de problèmes avec les versions différentes de biscuits. Le paramètre Application xsrf_cookie_version = 1 peut être utilisé pour une période de transition pour générer le format cookie âgées sur de nouveaux serveurs.
  • tornado.platform.asyncio est maintenant compatible avec la version 0.3 trollius.

Ce qui est nouveau dans la version 3.2.1:

  • Le format valeur signé utilisé par RequestHandler.set_secure_cookie et RequestHandler.get_secure_cookie a changé pour être plus sécurisé. Ceci est un changement perturbateur. Les fonctions de secure_cookie prennent nouvelle version paramètres pour soutenir les transitions entre les formats de biscuits.
  • Le nouveau format de biscuit corrige une vulnérabilité qui peut être présent dans les applications qui utilisent plusieurs cookies où le nom d'un cookie est un préfixe du nom d'un autre.
  • Pour minimiser les perturbations, les cookies à l'ancien format seront acceptées par défaut jusqu'à leur expiration. Applications qui peuvent être vulnérables peut rejeter tous les cookies dans l'ancien format en passant min_version = 2 à RequestHandler.get_secure_cookie.

Quoi de neuf dans la version 3.2:

  • la mise en default_handler_class nouvelle application peut être utilisée pour mettre en place facilement personnalisé 404 pages.
  • New paramètres de l'application autoreload, compiled_template_cache, static_hash_cache et serve_traceback peut être utilisé pour contrôler les aspects individuels de mode de débogage.
  • Nouveau méthodes RequestHandler.get_query_argument et RequestHandler.get_body_argument et de nouveaux attributs et HTTPRequest.query_arguments HTTPRequest.body_arguments permettent l'accès à des arguments sans entremêlement ceux de la chaîne de requête avec ceux du corps de la demande.

  • méthodes
  • RequestHandler.decode_argument et liées soulèvent maintenant une HTTPError (400) au lieu de UnicodeDecodeError lorsque l'argument ne pouvait pas être décodé.
  • RequestHandler.clear_all_cookies accepte désormais domaine et au chemin arguments, tout comme clear_cookie.
  • Il est maintenant possible de spécifier des gestionnaires de nom lors de l'utilisation de la classe URLSpec.
  • L'application accepte les maintenant 4-uplets pour spécifier le paramètre de nom (qui nécessitait auparavant construisant un objet URLSpec place d'un tuple).
  • Correction d'un message d'erreur incorrect lorsque les méthodes de gestionnaire renvoient une valeur autre que Aucun ou un avenir.
  • Exceptions ne sera plus connecté à deux reprises lors de l'utilisation à la fois gen.coroutineasynchronous et @.

Quoi de neuf dans la version 3.1:

  • Beaucoup de cycles de référence ont été brisées dans tout le paquet, ce qui permet pour la collecte des ordures plus efficace sur CPython.
  • Silenced certains messages du journal lorsque les connexions sont ouvertes et fermées immédiatement (c.-scans de ports), ou d'autres situations liées à des connexions fermées.
  • Divers petites accélérations: httpHeaders normalisation de casse, des objets proxy UIModule, PreCompile certaines expressions rationnelles
  • .

Ce qui est nouveau dans la version 3.0.2:

  • tornado.auth.TwitterMixin désormais par défaut la version 1.1 de l'API de Twitter, à la place de la version 1.0 qui est interrompu sur Juin 11. Il utilise aussi désormais HTTPS lorsque vous parlez à Twitter.
  • Correction d'une fuite mémoire potentiel avec une longue chaîne de fonctions de gen.coroutine ou gen.engine.

Quoi de neuf dans la version 3.0:

  • Le `` argument callback`` à de nombreuses méthodes asynchrones est maintenant en option, et ces méthodes renvoient un `.Future`. Le module `tornado.gen` comprend maintenant` `Futures``, et ces méthodes peut être utilisé directement sans` wrapper .gen.Task`.
  • Nouvelle fonction `` .IOLoop.current` renvoie le .IOLoop` qui est exécuté sur le thread courant (par opposition à `.IOLoop.instance`, qui revient habituellement) IOLoop de le thread principal de (un thread spécifique.
  • Nouvelle classe `tornado.netutil.Resolver` fournit une interface asynchrone pour la résolution DNS.
  • Nouvelle classe `` tornado.process.Subprocess` enveloppe subprocess.Popen` avec `accès .PipeIOStream` aux descripteurs de fichiers de l'enfant.
  • `.IOLoop` a maintenant un` configure & # x3C statique; .Configurable.configure & # X3e; `méthode comme celle sur` .AsyncHTTPClient`, qui peut être utilisé pour sélectionner une mise en œuvre `.IOLoop` autre que le défaut. * `.IOLoop` Peut maintenant utiliser éventuellement une horloge monotone si disponible.

Quoi de neuf dans la version 2.4.1:

  • Correction d'une fuite mémoire dans tornado.stack_context qui était particulièrement probable avec des fonctions de longue durée @ gen.engine.
  • tornado.auth.TwitterMixin fonctionne maintenant sur Python 3.
  • Correction d'un bug dans lequel IOStream.read_until_close avec un rappel en streaming serait parfois passer le dernier bloc de données à la fonction de rappel finale au lieu de streaming rappel.

Quoi de neuf dans la version 2.4:

  • Correction Python 3 bugs dans tornado.auth, tornado.locale et tornado.wsgi.
  • OAuthMixin accepte maintenant & quot; oob & quot; comme callback_uri.
  • OpenIDMixin renvoie désormais aussi le champ claimed_id pour l'utilisateur.
  • séquence d'arrêt tornado.platform.twisted est maintenant plus compatible.
  • La configuration de journalisation utilisé dans tornado.options est maintenant plus tolérante des chaînes d'octets non-ascii.

Quoi de neuf dans la version 2.3:

  • `tornado.httpclient.HTTPClient` prend désormais en charge le même constructeur arguments mot-clé comme `AsyncHTTPClient`.
  • Le `` mot-clef argument max_clients`` à `AsyncHTTPClient.configure` fonctionne maintenant.
  • `tornado.simple_httpclient` prend désormais en charge le` `et` `options`` méthodes PATCH`` HTTP.
  • `tornado.simple_httpclient` est préférable de fermer ses prises lieu de les laisser pour la collecte des ordures.
  • `tornado.simple_httpclient` vérifie correctement les certificats SSL pour les URL contenant des littéraux IPv6 (Ce bogue affecté Python 2.5 et 2.6).
  • `tornado.simple_httpclient` ne comprend plus les pouvoirs auth de base dans le` `tête de Host`` lorsque ces pouvoirs sont extraites de l'URL.
  • `tornado.simple_httpclient` ne modifie plus l'en-tête dictionnaire fourni par l'appelant, ce qui a causé des problèmes lorsque l'on suit les redirections.
  • `tornado.curl_httpclient` prend désormais en charge les certificats SSL clients (en utilisant le même` `et` `client_cert`` arguments client_key`` comme` tornado.simple_httpclient`.

Ce qui est nouveau dans la version 2.2.1:

  • Les corrections de sécurité:
  • `tornado.web.RequestHandler.set_header` maintenant assainit correctement les valeurs d'entrée pour se protéger contre l'injection d'en-tête, la réponse fractionnement, etc. (il a toujours essayé de le faire, mais le chèque était incorrect). Remarque qui redirige, la source la plus probable de ces insectes, sont protégés par un chèque séparé dans `RequestHandler.redirect`.
  • Correction de bugs:
  • configuration de journalisation coloré dans `tornado.options` est compatible avec Python 3.2.3 (et 3.3).

Ce qui est nouveau dans la version 2.2:.

  • Mise à jour et élargi le soutien WebSocket
  • Amélioration de la compatibilité dans le pont tordu / Tornado.
  • erreurs de modèles génèrent maintenant de meilleures traces de la pile.
  • Une meilleure manipulation dans `tornado.gen` exception.

Ce qui est nouveau dans la version 2.1.1:

  • Correction de bugs:
  • Correction de la gestion des connexions fermées avec le `` epoll`` (c.-à-Linux) `` IOLoop``. Auparavant, les connexions fermées pourraient être arrêtés trop tôt, ce qui manifeste le plus souvent comme & quot; flux est fermé & quot; exceptions dans `` SimpleAsyncHTTPClient``.
  • Correction d'un cas dans lequel chunked réponses pourraient être fermés prématurément, conduisant à la sortie tronquée.
  • `` IOStream.connect`` relève maintenant des erreurs plus systématiquement par l'exploitation forestière et le rappel à proximité (ce qui affecte par exemple les connexions à localhost sur FreeBSD).
  • `` IOStream.read_bytes`` accepte à nouveau les deux `` et `` int`` arguments long``.
  • `` PeriodicCallback`` ne fonctionne plus à plusieurs reprises lorsque `` itérations IOLoop`` se terminer plus rapidement que la résolution de `` time.time () `` (principalement un problème sur Windows).

Ce qui est nouveau dans la version 2.1.0:

  • DigiNotar a été supprimé à partir du fichier des certificats CA par défaut utilisé par `SimpleAsyncHTTPClient`
  • Pour faciliter certains scénarios multi-process avancés, `` HTTPServer`` a une nouvelle méthode `` add_sockets``, et le code d'ouverture de socket est disponible séparément comme `tornado.netutil.bind_sockets`.
  • Soutien aux cookies sécurisés écrits par pré-1.0 rejets de Tornado a été supprimé.
  • le support de Windows a été amélioré.

Ce qui est nouveau dans la version 2.0.0:

  • Des changements majeurs:
  • sortie de modèle est automatiquement échappé par défaut.
  • La mise en œuvre de AsyncHTTPClient par défaut est maintenant simple_httpclient.
  • Python 3.2 est désormais pris en charge.
  • Rétro-compatibilité:
  • Modèle autoescaping est activée par défaut. Applications mise à niveau depuis une version précédente de Tornado doit soit autoescaping désactiver ou d'adapter leurs modèles de travailler avec elle. Pour la plupart des applications, la façon la plus simple de le faire est de passer autoescape = Aucun pour le constructeur d'application.
  • Applications qui souhaitent continuer à utiliser curl_httpclient lieu de simple_httpclient peuvent le faire en appelant AsyncHTTPClient.configure (& quot; tornado.curl_httpclient.CurlAsyncHTTPClient & quot;) au début du processus. Les utilisateurs de Python 2.5 voudront probablement utiliser curl_httpclient que simple_httpclient ne supporte que SSL sur Python 2.6 +.
  • Python 3 compatibilité impliqué beaucoup de changements tout au long de la base de code, afin que les utilisateurs sont encouragés à tester leurs applications de manière plus approfondie que d'habitude lorsque la mise à niveau vers cette version.
  • D'autres changements dans la version 4.1:
  • Modèles en charge plusieurs nouvelles directives: - {% autoescape ...%} pour contrôler le comportement échapper - {% brut ...}% pour la sortie unescaped - {% Module ...%} pour appeler UIModules * {module% Modèle (PATH, kwargs **)%} peuvent maintenant être utilisés pour appeler un autre modèle avec un espace de noms indépendant.
  • Tous les rappels IOstream sont maintenant exécuter directement sur le IOLoop via add_callback.
  • HTTPServer prend désormais en charge IPv6 lorsqu'elles sont disponibles. Pour désactiver, passer la famille = socket.AF_INET à HTTPServer.bind ().
  • HTTPClient prend désormais en charge IPv6, configurable via allow_ipv6 = bool sur le HTTPRequest. allow_ipv6 par défaut à false sur simple_httpclient et vrai sur curl_httpclient.
  • RequestHandlers peut utiliser un codage autre que UTF-8 pour les paramètres de la requête en remplaçant decode_argument ().

  • améliorations
  • performances, en particulier pour les applications qui utilisent beaucoup de IOLoop Délais.
  • HTTP méthode OPTIONS ne nécessite plus un jeton d'XSRF.
  • JSON (RequestHandler.write (dict)) fixe désormais Content-Type d'application / json.
  • Etag calcul peut désormais être personnalisé ou désactivé par des raisons impérieuses RequestHandler.compute_etag.
  • variable d'environnement USE_SIMPLE_HTTPCLIENT est plus supporté. Utiliser AsyncHTTPClient.configure place.

Ce qui est nouveau dans la version 1.2.1:

  • Le présent communiqué ne contient que deux petits changements par rapport à la version 1.2:
  • FacebookGraphMixin a été mis à jour pour fonctionner avec un changement récent à l'API Facebook.
  • Running & quot; setup.py install & quot; ne sera plus tenter d'installer automatiquement pycurl. Ce ne fonctionnait pas bien sur les plateformes où la meilleure façon d'installer pycurl se fait par quelque chose comme apt-get lieu de easy_install. Ceci est une mise à niveau importante si vous utilisez FacebookGraphMixin, mais sinon, il peut être ignoré.

Quoi de neuf dans la version 1.2.0:

  • Cette version inclut le changement de sécurité rétro-compatible de la version 1.1.1.
  • Pour remplacer transparente tornado.httpclient.AsyncHTTPClient avec cette nouvelle application, vous pouvez configurer l'environnement USE_SIMPLE_HTTPCLIENT variable = 1
  • Demande exploitation forestière est maintenant effectué par la demande plutôt que l'RequestHandler. Logging comportement peut être personnalisé en soit impérieuses Application.log_request dans une sous-classe ou en passant log_function comme un paramètre d'application.

Ce qui est nouveau dans la version 1.1.1:

  • Tornado 1.1.1 est un titre incompatibilités inverses mise à jour qui corrige une faille XSRF.

Ce qui est nouveau dans la version 1.1:

  • Changements:

  • fonctions
  • RequestHandler.async_callback et liées à d'autres classes ne sont plus nécessaires dans la plupart des cas (même si elle est inoffensive pour continuer
  • les utiliser). Exceptions non interceptées seront maintenant causer la demande à être fermé, même dans un rappel. Si vous êtes curieux de voir comment cela fonctionne, consultez le nouveau module de tornado.stack_context.
  • Le nouveau module de tornado.testing contient le support pour code basé IOLoop tests unitaires asynchrone.
  • AsyncHTTPClient a été réécrit (la nouvelle mise en œuvre était disponible AsyncHTTPClient2 en Tornado 1.0; les deux noms sont pris en charge pour l'arrière
  • compatibilité).
  • Le module de tornado.auth a eu un certain nombre de mises à jour, y compris le soutien pour OAuth 2.0 et l'API Graph Facebook, Twitter et la mise à niveau et de soutien aux Google OAuth 1.0a.
  • Le module de websocket est de retour et prend en charge la dernière version (76) du protocole de websocket. A noter que l'interface de ce module est différent du module de websocket paru dans 1.0 pré-versions de Tornado.
  • Nouvelle méthode RequestHandler.initialize () peuvent être remplacées dans les sous-classes pour simplifier les arguments de manutention de URLSpecs. La séquence de méthodes appelé lors de l'initialisation est documenté au http://tornadoweb.org/documentation#overriding-requesthandler-methods
  • méthodes de get_argument () et assimilé travaillent maintenant sur les demandes de mettre en plus de POST.
  • Le module de httpclient prend désormais en charge les proxies HTTP.
  • Lorsque HTTPServer est exécuté en mode SSL, la négociation SSL est maintenant non-bloquante.
  • Beaucoup de corrections de bugs plus petit et mises à jour de documentation

  • notes
  • compatibilité ascendante:
  • Alors que la plupart des utilisateurs de Tornado ne devraient pas avoir à traiter avec le module de stack_context directement, les utilisateurs de pools de threads de travail et des constructions similaires peuvent avoir besoin d'utiliser stack_context.wrap et / ou NullContext pour éviter les fuites de mémoire.
  • Le nouveau AsyncHTTPClient fonctionne toujours avec libcurl version 7.16.x, mais il fonctionne mieux lorsque les deux libcurl et pycurl sont au moins la version 7.18.2.

  • les transactions
  • OAuth ouvertes dans les versions précédentes du module auth ne peuvent pas être accomplies sous le nouveau module. Ceci ne concerne que le processus d'autorisation initiale; une fois un jeton autorisé est délivré ce jeton fonctionne avec soit la version.

Exigences :

  • Python 2.6 ou supérieur

Logiciel similaire

Lumen
Lumen

10 Feb 16

Apache VCL
Apache VCL

12 May 15

Dijon
Dijon

13 Apr 15

D'autres logiciels de développeur Facebook

Ringmark
Ringmark

13 May 15

HHVM
HHVM

5 Jun 15

Commentaires à Tornado

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!
Recherche par catégorie