Wydanie Tokio 1.13.0, platformy do tworzenia aplikacji asynchronicznych w języku Rust

Wydano wersję 1.13.0 platformy Tokio, przeznaczonej do tworzenia wydajnych aplikacji w języku Rust, opartych na architekturze zdarzeniowej (Event-driven), wspierającej wielowątkowość oraz obsługę zapytań sieciowych w trybie asynchronicznym. Projekt został napisany w języku Rust i jest udostępniany na licencji MIT. W nowej wersji wprowadzono rozszerzenie dokumentacji oraz szereg poprawek w subsystemie sieciowym i systemie synchronizacji.

Tokio obejmuje następujące komponenty:

  • Wielowątkowy harmonogram wejścia/wyjścia, którego działanie opiera się na przydzielaniu zasobów tylko tym wątkom (w kontekście równoległego wykonywania), które spełniają określone warunki, co pozwala uniknąć stanów wyścigu, często spotykanych w programach pisanych w językach bez bezpiecznego zarządzania pamięcią i zasobami;
  • Backend dla zapewnienia zgodności z różnymi mechanizmami multiplexingu połączeń dostępnymi w systemach operacyjnych, takimi jak epoll, kqueue i IOCP;
  • Typy i powiązania z realizacją asynchronicznych gniazd TCP i UDP.
  • Narzędzia do wykonywania zadań w trybie asynchronicznym, w tym prymitywy synchronizacji, kanały i timeouty.
  • API do wykonywania asynchronicznego wejścia/wyjścia, obejmujące gniazda TCP/UDP, operacje na plikach, zarządzanie sygnałami i procesami.

Deweloperzy podkreślają takie cechy swojego produktu, jak wysoka wydajność, porównywalna z prędkością działania na 'czystym sprzęcie', doskonała skalowalność oraz niezawodność, zapewniona przez system typów i model równoległości w języku Rust.

Repozytorium liczy ponad 500 uczestników, w tym przedstawicieli AWS, Azure, Comcast, Dropbox i Facebooka. Jako zależności Tokio wykorzystuje takie produkty, jak:

  • hyper: szybka i bezpieczna realizacja HTTP/1 i HTTP/2 dla Rust;
  • warp: lekki framework do serwer WWWzorientowany na dużą wydajność;
  • tracing: framework do śledzenia na poziomie aplikacji i diagnostyki z uwzględnieniem asynchroniczności;
  • rdbc: biblioteka do łączenia baz danych MySQL, Postgres i SQLite z aplikacjami w języku Rust;
  • bytes: Narzędzia do pracy z bajtami, w tym efektywne bufory bajtowe.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster