Versie 1.13.0 van het Tokio-platform is uitgebracht, ontworpen voor het ontwikkelen van high-performance toepassingen in Rust op basis van een event-driven architectuur, die ondersteuning biedt voor multi-threading en asynchrone verwerking van netwerkverzoeken. Het project is geschreven in Rust en wordt verspreid onder de MIT-licentie. In de nieuwe versie zijn onder andere de documentatie uitgebreid en zijn er verschillende verbeteringen aangebracht in de netwerksubsystemen en synchronisatiesystemen.
Tokio omvat de volgende componenten:
- Een multi-threaded I/O-scheduler die middelen alleen toewijst aan die threads (in de context van parallelle uitvoering), die aan specifieke voorwaarden voldoen, wat helpt om race-condities te vermijden die vaak voorkomen in programma's geschreven in talen zonder veilig geheugen- en middelenbeheer;
- Een backend om compatibiliteit te garanderen met de in verschillende besturingssystemen aangeboden mechanismen voor multiplexen van verbindingen, zoals epoll, kqueue en IOCP;
- Typen en bindings met implementatie van asynchrone TCP- en UDP-sockets.
- Hulpmiddelen voor het uitvoeren van taken in asynchrone modus, inclusief synchronisatieprimitieven, kanalen en time-outs.
- API voor het uitvoeren van asynchrone I/O, inclusief TCP/UDP-sockets, bestandsoperaties, en middelen voor het beheren van signalen en processen.
Ontwikkelaars benadrukken de kenmerken van hun product, zoals hoge prestaties, vergelijkbaar met de snelheid van 'pure hardware', uitstekende schaalbaarheid en betrouwbaarheid, die wordt gegarandeerd door het type systeem en het parallelle model van de programmeertaal Rust.
De repository heeft meer dan 500 bijdragers, waaronder vertegenwoordigers van AWS, Azure, Comcast, Dropbox en Facebook. Voor afhankelijkheden gebruikt Tokio producten zoals:
- hyper: een snelle en veilige implementatie van HTTP/1 en HTTP/2 voor Rust;
- warp: een lichtgewicht framework voor webserver, gericht op hoge snelheid;
- tracing: een framework voor applicatietracing en diagnostiek met inachtneming van asynchroniciteit;
- rdbc: een bibliotheek voor het aansluiten van databases MySQL, Postgres en SQLite aan producten geschreven in de programmeertaal Rust;
- bytes: Hulpmiddelen voor het werken met bytes, inclusief efficiƫnte byte buffers.
Bron: opennet.ru
