Byla vydána verze 1.13.0 platformy Tokio, která je určena pro vytváření vysoce výkonných aplikací v jazyce Rust s architekturou orientovanou na události (Event-driven), podporující multitasking a zpracování síťových požadavků v asynchronním režimu. Projekt je napsán v jazyce Rust a je distribuován pod licencí MIT. Nová verze přináší rozšíření dokumentace, řadu oprav v síťovém subsystému a synchronizačním systému.
Tokio zahrnuje následující komponenty:
- Vícevláknový plánovač vstupu/výstupu, jehož práce spočívá v poskytování zdrojů pouze těm vláknům (v kontextu paralelního provádění), která splňují konkrétní podmínky, což umožňuje vyhnout se závodním podmínkám, které se často vyskytují v programech napsaných v jazycích bez bezpečného správy pamětí a zdrojů;
- Backend pro zajištění kompatibility s mechanismy multiplexování připojení, které poskytují různé operační systémy, jako jsou epoll, kqueue a IOCP;
- Typy a vazby s implementací asynchronních TCP a UDP soketů.
- Nástroje pro vykonávání úloh v asynchronním režimu, včetně synchronizačních primitiv, kanálů a časových limitů.
- API pro provádění asynchronního vstupu/výstupu, které zahrnuje TCP/UDP sokety, operace se soubory, prostředky pro správu signálů a procesů.
Vývojáři uvádějí takové vlastnosti svého produktu, jako je vysoký výkon, který se může rovnat rychlosti na 'holém hardwaru', vynikající škálovatelnost a spolehlivost zajištěná systémem typů a modelem paralelismu jazyka Rust.
Repozitář má více než 500 účastníků, mezi kterými jsou zástupci AWS, Azure, Comcast, Dropbox a Facebook. Jako závislosti na Tokio se používají následující produkty:
- hyper: rychlá a bezpečná implementace HTTP/1 a HTTP/2 pro Rust;
- warp: lehký rámec pro webového serveru, zaměřený na vysokou rychlost práce;
- tracing: rámec pro sledování na úrovni aplikací a diagnostiku s ohledem na asynchronnost;
- rdbc: knihovna pro připojení databází MySQL, Postgres a SQLite k produktům v programovacím jazyce Rust;
- bytes: Nástroje pro práci s byty, včetně efektivních byte bufferů.
Zdroj: opennet.ru
