A fost lansată versiunea 1.13.0 a platformei Tokio, destinată creării de aplicații de înaltă performanță în limbajul Rust, bazate pe arhitectura orientată pe evenimente (Event-driven), care susține multithreading și procesarea cererilor de rețea în mod asincron. Proiectul este scris în limbajul Rust și este distribuit sub licența MIT. Noul release include un extindere a documentației, precum și o serie de corecturi în subsistemul de rețea și în sistemul de sincronizare.
Tokio include următoarele componente:
- Un planificator multithreading pentru input/output, care se concentrează pe furnizarea de resurse doar acelora dintre firele de execuție (în contextul execuției paralele) care îndeplinesc condiții specifice, evitând astfel stare de concurență, întâlnită frecvent în programele scrise în limbaje fără gestionarea sigură a memoriei și resurselor;
- Backend pentru asigurarea compatibilității cu mecanismele de multiplexare a conexiunilor disponibile în diverse sisteme de operare, cum ar fi epoll, kqueue și IOCP;
- Tipuri și binding-uri cu implementarea unor socket-uri asincrone TCP și UDP.
- Instrumente pentru executarea sarcinilor în mod asincron, inclusiv primitive de sincronizare, canale și timeout-uri.
- API pentru realizarea input/output-ului asincron, acoperind socket-uri TCP/UDP, operațiuni cu fișiere, precum și gestionarea semnalelor și proceselor.
Dezvoltatorii subliniază caracteristicile produsului lor, cum ar fi performanța ridicată, comparabilă cu viteza de lucru pe «hard disk» brut, scalabilitatea excelentă și fiabilitatea, garantată de sistemul de tipuri și modelul de paralelism al limbajului Rust.
Repository-ul are peste 500 de contribuabili, printre care se numără reprezentanți de la AWS, Azure, Comcast, Dropbox și Facebook. Printre produsele utilizate ca dependențe de către Tokio se numără:
- hyper: o implementare rapidă și sigură a HTTP/1 și HTTP/2 pentru Rust;
- warp: un framework ușor pentru server web, orientat pe viteza mare de execuție;
- tracing: un framework pentru trasarea la nivel de aplicații și diagnosticarea având în vedere asincronitatea;
- rdbc: o bibliotecă pentru conectarea bazelor de date MySQL, Postgres și SQLite la produsele scrise în limbajul de programare Rust;
- bytes: unelte pentru lucrul cu byte-uri, inclusiv buffer-e de byte eficiente.
Sursa: opennet.ro
