Megjelent a Tokio 1.13.0-ás verziója, amely a Rust nyelven készült, eseményvezérelt architektúrára épülő, nagy teljesítményű alkalmazások létrehozására szolgál, támogatva a több szálú működést és az aszinkron hálózati kérések feldolgozását. A projekt Rust nyelven íródott és MIT licenc alatt terjesztik. Az új verzióban a dokumentáció bővítése, valamint a hálózati alrendszer és a szinkronizációs rendszer számos javítása figyelhető meg.
A Tokio a következő összetevőket tartalmazza:
- Több szálú bemeneti/kimeneti ütemező, amelynek működése az erőforrások biztosítására vonatkozik csak azoknak a szálaknak (a párhuzamos végrehajtás kontextusában), amelyek konkrét feltételeknek felelnek meg, így elkerülve a versenyhelyzetet, ami gyakran előfordul olyan nyelveken írt programokban, amelyek nem kínálnak biztonságos memória- és erőforráskezelést;
- Backend a különféle operációs rendszerek által biztosított kapcsolatmultiplexálási mechanizmusokkal való kompatibilitás érdekében, mint például az epoll, kqueue és IOCP;
- Típusok és kötések aszinkron TCP- és UDP-socketek megvalósításával.
- Eszközök feladatok aszinkron végrehajtásához, beleértve a szinkronizációs primitívákat, csatornákat és időkorlátokat.
- API aszinkron bemeneti/kimeneti végrehajtáshoz, amely magában foglalja a TCP/UDP socketeket, fájlműveleteket, jel- és folyamatkezelő eszközöket.
A fejlesztők a termékük olyan jellemzőit emelik ki, mint a kiemelkedő teljesítmény, amely összehasonlítható a «nyers hardver» sebességével, a kiváló skálázhatóság és megbízhatóság, amelyet a Rust nyelv típusrendszere és párhuzamossági modellje biztosít.
A repository több mint 500 résztvevőt számlál, köztük az AWS, Azure, Comcast, Dropbox és Facebook képviselőit. A Tokio esetében a következő termékeket használják függőségként:
- hyper: gyors és biztonságos HTTP/1 és HTTP/2 implementáció Rust számára;
- warp: könnyű keretrendszer a webszerver, a gyors működésre összpontosítva;
- tracing: keretrendszer az alkalmazás szintű nyomozáshoz és diagnosztikához, figyelembe véve az aszinkronitást;
- rdbc: MySQL, Postgres és SQLite adatbázisok csatlakoztatására szolgáló könyvtár Rust alkalmazásokhoz;
- bytes: Byteokkal való munkához hasznos eszközök, beleértve a hatékony byte buffer-eket.
Forrás: opennet.ru
