Tornado

Screenshot Software:
Tornado
Szczegóły programowe:
Wersja: 4.3 Aktualizowane
Filmu: 10 Dec 15
Wywoływacz: Facebook
Licencja: Wolny
Popularność: 9

Rating: 3.0/5 (Total Votes: 2)

Na początku Facebook został zbudowany z wykorzystaniem PHP i MySQL, ale jako ruchu i wielkości sieci wzrosła, tak i jego wymagania dla lepszego i szybszego dostarczania treści w czasie rzeczywistym.

Ten poprowadził zespół Facebook, aby zagłębić się w innych technologiach i językach poza PHP, a firma szybko okazało jej zabytków do Python, język programowania używany przez Google do budowania swojej wyszukiwarki.

Wysiłki zespołu doprowadziły do ​​produktu o nazwie Tornado, ramy Pythona specjalnie zaprojektowany do pracy z surowych połączeń HTTP w prosty asynchronicznego nieblokującego sposób.

Tornado został zainspirowany innych narzędzi, takich jak Web.py i Google webapp, ale zawiera również dodatkowe funkcje, jak również.

W centrum całego ramach mieszka potężny serwer HTTP, które jest wzmocnione przez zestaw modułów do czynienia z zawartością i18n, ciąg manipulacji, generacji wyjściowego operacji asynchronicznych, kodzie firm trzecich, dzienniki, i tak dalej.

Poza tym Cassandra , Tornado jest jednym z najbardziej udanych open source aplikacji Facebooka do tej pory.

Co nowego w tym wydaniu :

  • Nowe moduły: tornado.locks i tornado.queues

Co nowego w wersji 4.2:

  • Nowe moduły: tornado.locks i tornado.queues

Co nowego w wersji 4.1:

  • tornado.web.stream_request_body dekorator pozwala dużych plików za przesłanych z ograniczoną wykorzystania pamięci.
  • Coroutines są teraz szybciej i są szeroko wykorzystywane przez samego Tornado. Więcej metody teraz powrócić Futures, w tym większości metod iostream i RequestHandler.flush.
  • Wiele metod użytkownika nadpisane mogą teraz wrócić w przyszłości do regulacji przepływu.
  • Kod HTTP związane jest teraz podzielony między modułami tornado.httpserver, tornado.simple_httpclient i tornado.wsgi, co wsparcie dla funkcji, takich jak pofragmentowane i kodowanie gzip bardziej spójne. HTTPServer używa teraz nowe interfejsy delegata określonych w tornado.httputil oprócz swojego starego interfejsu pojedynczego wywołania zwrotnego.
  • Nowy moduł tornado.tcpclient tworzy połączenia TCP z nieblokującego DNS, uzgadniania SSL i wsparcie dla IPv6.

Co nowego w wersji 3.2.2:

  • XSRF tokena jest teraz zakodowany z losową maski na każde żądanie. To sprawia, że ​​można bezpiecznie umieścić w skompresowanych stron nie będąc narażony na atak naruszenia. Odnosi się to do większości aplikacji, które korzystają zarówno xsrf_cookies i opcji gzip (lub mają gzip stosowane przez pełnomocnika).
  • Jeśli Tornado 3.2.2 jest prowadzony w tym samym czasie, w starszych wersjach w tej samej domenie, jest jakaś możliwość zagadnień z różnych wersjach cookie. Ustawienie Zastosowanie xsrf_cookie_version = 1 może być stosowany w okresie przejściowym do generowania starszego formatu plików cookie na nowych serwerach.
  • tornado.platform.asyncio jest teraz kompatybilny z wersją 0.3 Pełnik.

Co jest nowa w wersji 3.2.1:

  • Format podpisał wartości wykorzystywane przez RequestHandler.set_secure_cookie i RequestHandler.get_secure_cookie zmieniła się być bardziej bezpieczne. To destrukcyjne zmiany. Funkcje secure_cookie podjąć nowe parametry wersji wspieranie przejścia między formatami plików cookie.
  • Nowy format plików cookie eliminuje lukę, która może być obecna w aplikacjach korzystających z wielu plików cookie, gdzie nazwa jednego pliku cookie jest prefiksem imię innego.
  • Aby zminimalizować zakłócenia, ciasteczka w starszym formacie będą przyjmowane domyślnie do czasu ich wygaśnięcia. Aplikacje, które mogą być narażone może odrzucić wszystkie cookies w starszym formacie przekazując min_version = 2 do RequestHandler.get_secure_cookie.

Co nowego w wersji 3.2:

  • Nowe ustawienie default_handler_class aplikacja może być używana do łatwo skonfigurować niestandardowe 404 stron.
  • Nowe ustawienia aplikacji autoreload, compiled_template_cache, static_hash_cache i serve_traceback mogą być wykorzystane do kontroli poszczególnych aspektów trybie debugowania.
  • Nowe metody RequestHandler.get_query_argument i RequestHandler.get_body_argument i nowe atrybuty HTTPRequest.query_arguments i HTTPRequest.body_arguments umożliwić dostęp do tych argumentów, nie mieszając się z łańcucha zapytania z tymi z treści żądania.

  • metody
  • RequestHandler.decode_argument i pokrewnych teraz podnieść httpError (400) zamiast UnicodeDecodeError gdy argument nie może być dekodowane.
  • RequestHandler.clear_all_cookies przyjmuje teraz argumenty domeny i ścieżki, podobnie jak clear_cookie.
  • Teraz można określić teleskopowe pod nazwą przy użyciu klasy URLSpec.
  • Aplikacja akceptuje obecnie 4-krotki określić parametr nazw (które wcześniej wymagany budowy obiektu URLSpec zamiast krotki).
  • Poprawiono błędny komunikat o błędzie, gdy metod obsługi zwróci wartość inną niż Brak lub przyszłości.
  • Wyjątki nie będą rejestrowane dwa razy przy użyciu zarównoasynchronous i @ gen.coroutine.

Co nowego w wersji 3.1:

  • Wiele cykli referencyjne zostały rozbite w całym pakiecie, dzięki czemu na bardziej efektywne zbieranie śmieci na CPython.
  • tłumikiem niektóre wiadomości dziennika, gdy połączenia są otwarte i natychmiast zamknięte (czyli skanowanie portów), lub inne sytuacje związane z zamkniętych połączeń.
  • Różne małe speedups: HTTPHeaders przypadku normalizacji, UIModule obiekty proxy, precompile niektóre regexes
  • .

Co nowego w wersji 3.0.2:

  • tornado.auth.TwitterMixin teraz domyślnie w wersji 1.1 z API Twittera, a nie w wersji 1.0, który jest 11 czerwca zaniechanej teraz używa się także podczas rozmowy z HTTPS Twitter.
  • Naprawiono potencjalny wyciek pamięci o długim łańcuchu funkcji gen.coroutine lub gen.engine.

Co nowego w wersji 3.0:

  • `` callback`` argument wielu metod asynchronicznych jest teraz opcjonalne, i te metody zwracają `.Future`. Moduł `tornado.gen` teraz rozumie` `Futures``, a metody te mogą być wykorzystywane bezpośrednio bez` .gen.Task` opakowaniu.
  • Nowa funkcja `` .IOLoop.current` zwraca, na którym działa .IOLoop` na bieżącym wątku (w przeciwieństwie do `.IOLoop.instance`, która zwraca konkretnego wątku (zazwyczaj głównym wątku) IOLoop.
  • Nowa klasa `tornado.netutil.Resolver` zapewnia asynchroniczny interfejs do rozpoznawania nazw DNS.
  • Nowa klasa `tornado.process.Subprocess` owija` subprocess.Popen` z `.PipeIOStream` dostępu do deskryptorów dziecka.
  • `.IOLoop` ma teraz statyczny` Konfiguracja & # x3c; .Configurable.configure & # x3e; `metoda jak ten na` .AsyncHTTPClient`, który może być wykorzystany do wybrania `realizację .IOLoop` inne niż zaniedbanie. * `.IOLoop` Może opcjonalnie użyć monotonicznego zegar jeśli są dostępne.

Co nowego w wersji 2.4.1:

  • Naprawiono wyciek pamięci w tornado.stack_context, że był szczególnie prawdopodobne w funkcje długotrwały @ gen.engine.
  • tornado.auth.TwitterMixin teraz działa na Python 3.
  • Naprawiono błąd, w którym IOStream.read_until_close z zwrotnego strumieniowego czasami przechodzą ostatnią porcję danych do końcowego zwrotnego zamiast zwrotnego przesyłania strumieniowego.

Co nowego w wersji 2.4:

  • Poprawiono Python 3 błędy w tornado.auth, tornado.locale i tornado.wsgi.
  • OAuthMixin akceptuje teraz & quot; OOB & quot; jako callback_uri.
  • OpenIDMixin teraz również zwraca pole claimed_id dla użytkownika.
  • tornado.platform.twisted sekwencja zamykania jest teraz bardziej kompatybilny.
  • Konfiguracja logowania używane w tornado.options jest teraz bardziej tolerancyjni niedrukowalne bajtowych.

Co nowego w wersji 2.3:

  • `tornado.httpclient.HTTPClient` obsługuje ten sam konstruktor Argumenty słów kluczowych jak `AsyncHTTPClient`.
  • `` max_clients`` argumentem kluczowe do `AsyncHTTPClient.configure` teraz działa.
  • `tornado.simple_httpclient` obsługuje teraz` `` `OPTIONS`` i metody HTTP PATCH``.
  • `tornado.simple_httpclient` jest lepiej o zamknięciu swoich gniazd zamiast pozostawienia ich do zbierania śmieci.
  • `tornado.simple_httpclient` prawidłowo weryfikuje certyfikatów SSL dla adresów URL zawierających literały IPv6 (Ten błąd dotyczy Pythona 2.5 i 2.6).
  • `tornado.simple_httpclient` nie zawiera podstawowe poświadczeń uwierzytelniających w` `nagłówku Host`` kiedy te poświadczenia są wyodrębnione z adresu URL.
  • `tornado.simple_httpclient` nie modyfikuje nagłówek słownika dostarczone rozmówcy, który spowodował problemy, gdy po przekierowań.
  • `tornado.curl_httpclient` obsługuje certyfikatów SSL klienta (przy użyciu tego samego` `` `client_cert`` i argumenty jako` client_key`` tornado.simple_httpclient`.

Co nowego w wersji 2.2.1:

  • Poprawki zabezpieczeń:
  • `tornado.web.RequestHandler.set_header` teraz właściwie dezynfekuje wartości wejściowe w celu ochrony przed wstrzyknięciem nagłówka, dzielenia odpowiedzi, itp (to zawsze starał się to zrobić, ale kontrola jest nieprawidłowe). Należy pamiętać, że przekierowania, najbardziej prawdopodobnym źródłem takich błędów, są chronione przez oddzielny check in `RequestHandler.redirect`.
  • Poprawki błędów:
  • Konfiguracja logowania Colored w `tornado.options` jest kompatybilny z Python 3.2.3 (i 3.3).

Co nowego w wersji 2.2.

  • Zaktualizowane i poszerzone wsparcie websocket
  • Poprawiono kompatybilność w mostku Twisted / Tornado.
  • Błędy Szablon teraz generować lepsze ślady stosu.
  • Lepsze wyjątkiem obsługi w `tornado.gen`.

Co nowego w wersji 2.1.1:

  • Poprawki błędów:
  • Poprawiono obsługę zamkniętych połączeń z `` epoll`` (tj Linux) `` IOLoop``. Wcześniej zamknięte połączenia może być zamknięty za wcześnie, które najczęściej manifestują się & quot; Stream jest zamknięty & quot; wyjątki w `` SimpleAsyncHTTPClient``.
  • Naprawiono przypadek, w którym pofragmentowane reakcje mogą być zamknięte przedwcześnie, co prowadzi do obcięty wyjście.
  • `` IOStream.connect`` zgłasza się teraz błędy bardziej konsekwentnie poprzez rejestrowanie i ścisłej zwrotnego (dotyczy to na przykład połączenia z localhost na FreeBSD).
  • `` IOStream.read_bytes`` ponownie przyjmuje zarówno `` `` int`` i argumenty long``.
  • `` PeriodicCallback`` nie działa kilkakrotnie gdy `` iteracje IOLoop`` zakończyć szybciej niż rozdzielczość `` time.time () `` (głównie problem w systemie Windows).

Co nowego w wersji 2.1.0:

  • DigiNotar została usunięta z domyślnego pliku certyfikatu CA używany przez `SimpleAsyncHTTPClient`
  • Aby ułatwić niektóre zaawansowane scenariusze wielu procesów, `` HTTPServer`` ma nową metodę `` add_sockets`` i kod Gniazdo otwarcia jest dostępny oddzielnie jako `tornado.netutil.bind_sockets`.
  • Obsługa zabezpieczonych plików cookie napisanych przez pre-1.0 wersji Tornado został usunięty.
  • Obsługa systemu Windows została ulepszona.

Co nowego w wersji 2.0.0:

  • Główne zmiany:
  • Wyjście Szablon jest automatycznie uciekł domyślnie.
  • Realizacja domyślne AsyncHTTPClient jest teraz simple_httpclient.
  • Python 3.2 jest obecnie obsługiwane.
  • Kompatybilność wsteczna:
  • Szablon autoescaping jest domyślnie włączona. Aplikacje aktualizacji z poprzedniej wersji Tornado musi albo wyłączyć autoescaping lub dostosować swoje szablony do pracy z nim. Dla większości zastosowań, najprostszym sposobem, aby to zrobić, to przekazać autoescape = brak do konstruktora aplikacji.
  • Aplikacje, które chcą nadal korzystać curl_httpclient zamiast simple_httpclient może to zrobić dzwoniąc AsyncHTTPClient.configure (& quot; tornado.curl_httpclient.CurlAsyncHTTPClient & quot;) na początku procesu. Użytkownicy Python 2.5 będzie prawdopodobnie chcesz użyć curl_httpclient jak simple_httpclient obsługuje tylko SSL na Pythonie 2.6 +.
  • Python 3 Kompatybilność udział wielu zmian w całym kodzie, dzięki czemu użytkownicy są zachęcani do testowania swoich aplikacji dokładniej niż zwykle podczas aktualizacji do tej wersji.
  • Inne zmiany w wersji 4.1:
  • Szablony obsługują kilka nowych dyrektyw: - {% autoescape ...%} kontrolowania zachowań - ucieczki surowy ... {%}% - przed zmianą na wyjściu modułu ... {%%} za telefon UIModules * {moduł% Szablon (ścieżka, ** kwargs)%} mogą być teraz używane zadzwonić inny szablon z niezależnym nazw.
  • Wszystkie wywołania zwrotne iostream są teraz uruchomić bezpośrednio na IOLoop poprzez add_callback.
  • HTTPServer obsługuje IPv6 gdzie dostępne. Aby wyłączyć, przejść rodzina = socket.AF_INET do HTTPServer.bind ().
  • HTTPClient obsługuje IPv6, konfigurowany poprzez allow_ipv6 = bool na HTTPRequest. allow_ipv6 domyślnie false simple_httpclient i prawdziwe na curl_httpclient.
  • RequestHandlers mogą używać innego niż kodowanie utf-8 do parametrów zapytania nadrzędnymi decode_argument ().

  • ulepszenia
  • wydajność, zwłaszcza dla aplikacji wykorzystujących wiele IOLoop limity czasu.
  • OPCJE metoda HTTP nie wymaga token XSRF.
  • Wyjście JSON (RequestHandler.write (dict)) teraz ustawia typ zawartości application / json do.
  • obliczenia wytycznych mogą być dostosowane lub wyłączyć nadrzędnymi RequestHandler.compute_etag.
  • zmienna USE_SIMPLE_HTTPCLIENT nie jest już obsługiwana. Wykorzystanie AsyncHTTPClient.configure zamiast.

Co nowego w wersji 1.2.1:

  • Ta wersja zawiera tylko dwie niewielkie zmiany w stosunku do wersji 1.2:
  • FacebookGraphMixin został zaktualizowany do pracy z niedawną zmianą na Facebooku API.
  • Running & quot; setup.py install & quot; nie będzie już próbował automatycznie zainstalować pycurl. To nie działa dobrze na platformach, gdzie najlepiej zainstalować pycurl jest poprzez coś w rodzaju apt-get zamiast easy_install. Jest to ważna aktualizacja, jeśli używasz FacebookGraphMixin, ale poza tym można bezpiecznie zignorować.

Co nowego w wersji 1.2.0:

  • Wydanie to zawiera zmianę niezgodnej wstecz zabezpieczeń z Wersja 1.1.1.
  • Aby przejrzysty wymienić tornado.httpclient.AsyncHTTPClient z tej nowej realizacji, można ustawić zmienną środowiskową USE_SIMPLE_HTTPCLIENT = 1
  • Żądanie logowania jest teraz wykonywana przez zamiast stosowania w RequestHandler. Zachowanie zalogowaniu można dostosować zarówno nadrzędne Application.log_request w podklasie lub przekazując log_function jako ustawienie aplikacji.

Co nowego w wersji 1.1.1:

  • Tornado 1.1.1 jest wstecznie NIEZGODNE bezpieczeństwa aktualizacja, która rozwiązuje luki XSRF.

Co nowego w wersji 1.1:

  • Zmiany:
  • RequestHandler.async_callback i powiązane funkcje w innych klasach nie są już potrzebne w większości przypadków (choć jest to nieszkodliwe, aby kontynuować
  • korzystania z nich). Nie przechwycone wyjątki będą teraz spowodować, że wniosek zostanie zamknięta nawet w zwrotnego. Jeśli jesteś ciekaw, jak to działa, zobacz nowy moduł tornado.stack_context.
  • Nowy moduł tornado.testing zawiera wsparcie dla kodu, testowanie jednostkowe asynchroniczne IOLoop opartej.
  • AsyncHTTPClient został przepisany (nowa implementacja była dostępna jako AsyncHTTPClient2 w Tornado 1.0; obie nazwy są obsługiwane do tyłu
  • kompatybilność).
  • Moduł tornado.auth miał szereg aktualizacji, w tym wsparcie dla OAuth 2.0 i Facebook Graph API i modernizacji Twitter i Google wsparcie OAuth 1.0a.
  • Moduł websocket powraca i obsługuje najnowszą wersję (76) protokołu websocket. Zauważ, że interfejs ten moduł różni się od modułu websocket który ukazał się w pre-1.0 wersji Tornado.
  • Nowa metoda RequestHandler.initialize () może być zmienione podklasy uproszczenia argumentów obsługi z URLSpecs. Sekwencja metody zwane podczas inicjalizacji jest udokumentowane na http://tornadoweb.org/documentation#overriding-requesthandler-methods
  • metody get_argument () i związane z nimi teraz pracować na żądania PUT oprócz testu POST.
  • Moduł httpclient obsługuje serwery proxy HTTP.
  • Po HTTPServer prowadzony jest w trybie SSL, uścisk dłoni SSL jest teraz bez blokowania.
  • Wiele poprawek mniejszych błędów i aktualizacje dokumentacji

  • notatki
  • zgodności wstecznej:
  • Podczas gdy większość użytkowników Tornado nie powinien mieć do czynienia bezpośrednio z modułu stack_context użytkownicy pracowników basenów gwintu i podobnych konstrukcji konieczne może być użycie stack_context.wrap i / lub NullContext aby uniknąć wycieków pamięci.
  • Nowa AsyncHTTPClient nadal działa z wersją libcurl 7.16.x, ale działa lepiej, gdy zarówno libcurl i pycurl są co najmniej w wersji 7.18.2.

  • Transakcje
  • OAuth rozpoczęte w ramach poprzednich wersjach modułu auth nie może zostać zrealizowane w ramach nowego modułu. Dotyczy to tylko do wstępnego procesu wydawania zezwoleń; Token raz autoryzowanym Token wydawany jest, że działa z obu wersji.

Wymagania :

  • Python 2.6 lub nowszy,

Podobne oprogramowanie

Grape
Grape

11 Mar 16

COKE
COKE

1 Mar 15

CakePHP
CakePHP

25 May 16

Stapes.js
Stapes.js

13 May 15

Inne programy z deweloperem Facebook

XHP
XHP

1 Oct 15

Messenger
Messenger

4 May 20

Komentarze do Tornado

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!