Lançada a versão 1.13.0 da plataforma Tokio, destinada à criação de aplicativos de alto desempenho em Rust, baseados em uma arquitetura orientada a eventos (Event-driven), que suporta multithreading e o tratamento de requisições de rede em modo assíncrono. O projeto é escrito em Rust e distribuído sob a licença MIT. A nova versão destaca a ampliação da documentação, uma série de correções no subsistema de rede e no sistema de sincronização.
O Tokio inclui os seguintes componentes:
- Um escalonador de entrada/saída multithreaded, cuja função se resume a fornecer recursos apenas para aqueles threads (no contexto da execução paralela) que atendem a condições específicas, evitando assim a condição de corrida, frequentemente encontrada em programas escritos em linguagens sem gerenciamento seguro de memória e recursos;
- Backend para compatibilidade com mecanismos de multiplexação de conexões fornecidos em diferentes sistemas operacionais, como epoll, kqueue e IOCP;
- Tipos e vinculações com implementação de sockets TCP e UDP assíncronos.
- Ferramentas para execução de tarefas em modo assíncrono, incluindo primitivos de sincronização, canais e timeouts.
- API para entrada/saída assíncrona, cobrindo sockets TCP/UDP, operações em arquivos, e gerenciamento de sinais e processos.
Os desenvolvedores destacam características de seu produto, como alto desempenho, comparável à velocidade de execução em "hardware nu", ótima escalabilidade e confiabilidade, garantidas pelo sistema de tipos e pelo modelo de paralelismo da linguagem Rust.
O repositório conta com mais de 500 colaboradores, entre os quais estão representantes da AWS, Azure, Comcast, Dropbox e Facebook. Como dependências, o Tokio utiliza produtos como:
- hyper: uma implementação rápida e segura de HTTP/1 e HTTP/2 para Rust;
- warp: um framework leve para servidor web, focado em alta velocidade de operação;
- tracing: um framework para rastreamento a nível de aplicações e diagnóstico considerando a assíncronicidade;
- rdbc: uma biblioteca para conectar bancos de dados MySQL, Postgres e SQLite a produtos na linguagem de programação Rust;
- bytes: Utilidades para trabalhar com bytes, incluindo buffers de bytes eficientes.
Fonte: opennet.ru
