Bola vydaná verzia 1.13.0 plataformas Tokio, ktorá je určená na vytváranie vysoko výkonných aplikácií v jazyku Rust na základe architektúry orientovanej na udalosti (Event-driven), podporujúcej viaceré vláknovanie a spracovanie sieťových požiadaviek asynchrónne. Projekt je napísaný v jazyku Rust a je šírený pod licenciou MIT. V novej verzii je zaznamenané rozšírenie dokumentácie, niekoľko opráv v sieťovom subsystéme a systéme synchronizácie.
Tokio zahŕňa nasledujúce komponenty:
- Viacvláknový plánovač vstupu/výstupu, ktorý poskytuje prostriedky iba tým vláknam (v kontexte paralelného vykonávania), ktoré splnia konkrétne podmienky, čím sa zabraňuje stavu závodu, ktorý je často prítomný v programoch napísaných v jazykoch bez bezpečného spravovania pamäte a prostriedkov;
- Backend na zabezpečenie kompatibility s mechanizmami multiplexovania pripojení poskytovanými v rôznych operačných systémoch, ako sú epoll, kqueue a IOCP;
- Typy a viazania s implementáciou asynchrónnych TCP a UDP socketov.
- Nástroje na vykonávanie úloh vo asynchrónnom režime, vrátane synchronizačných primitív, kanálov a časových obmedzení.
- API na vykonávanie asynchrónneho vstupu/výstupu, ktoré pokrýva TCP/UDP sockety, súborové operácie, správy signálov a procesov.
Vývojári zdôrazňujú také vlastnosti svojho produktu, ako je vysoký výkon, porovnateľný s rýchlosťou na „holom hardvéri“, vynikajúcu škálovateľnosť a spoľahlivosť zabezpečenú systémom typov a modelom paralelizmu jazyka Rust.
Repozitár má viac ako 500 účastníkov, medzi ktorými sú zástupcovia spoločností AWS, Azure, Comcast, Dropbox a Facebook. Ako závislosť Tokio používajú také produkty ako:
- hyper: rýchla a bezpečná implementácia HTTP/1 a HTTP/2 pre Rust;
- warp: ľahký framework pre webového servera, zameraný na vysokú rýchlosť práce;
- tracing: framework na sledovanie na úrovni aplikácií a diagnostiku s ohľadom na asynchrónnosť;
- rdbc: knižnica na pripojenie databáz MySQL, Postgres a SQLite k produktom v jazyku Rust;
- bytes: Nástroje na prácu s bajtmi, vrátane efektívnych bajtových bufferov.
Zdroj: opennet.ru
