Die Version 1.13.0 der Tokio-Plattform wurde veröffentlicht. Diese Plattform ist für die Erstellung von hochperformanten, ereignisorientierten Anwendungen in Rust konzipiert und unterstützt Multithreading sowie die Verarbeitung von Netzwerk-Requests im asynchronen Modus. Das Projekt ist in Rust geschrieben und wird unter der MIT-Lizenz verteilt. In der neuen Version wurden die Dokumentation erweitert sowie einige Fehler in der Netzwerkinfrastruktur und im Synchronisierungssystem behoben.
Tokio umfasst folgende Komponenten:
- Einen multithreaded I/O-Planer, dessen Hauptaufgabe es ist, Ressourcen nur den Threads bereitzustellen, die bestimmte Bedingungen erfüllen, um Zustände von Datenrennen zu vermeiden, die häufig in Programmen auftreten, die in Sprachen ohne sichere Speicher- und Ressourcenverwaltung geschrieben sind;
- Ein Backend zur Sicherstellung der Kompatibilität mit verschiedenen in Betriebssystemen bereitgestellten Mechanismen zur Verbindungsmultiplexierung, wie epoll, kqueue und IOCP;
- Typen und Bindungen für die Implementierung von asynchronen TCP- und UDP-Sockets.
- Werkzeuge zur Ausführung von Aufgaben im asynchronen Modus, einschließlich Synchronisationsprimitive, Kanäle und Zeitüberschreitungen.
- API zur Durchführung von asynchronem Ein-/Ausgabe, das TCP/UDP-Sockets, Dateioperationen, Signal- und Prozessverwaltung umfasst.
Entwickler heben Merkmale ihres Produkts hervor, wie hohe Leistung, vergleichbar mit der Geschwindigkeit von "nackter Hardware", hervorragende Skalierbarkeit und Zuverlässigkeit, die durch das Typsystem und das Parallelitätsmodell der Programmiersprache Rust gewährleistet wird.
Das Repository umfasst über 500 Mitwirkende, darunter Vertreter von AWS, Azure, Comcast, Dropbox und Facebook. In der Abhängigkeit von Tokio kommen Produkte wie folgende zum Einsatz:
- hyper: eine schnelle und sichere Implementierung von HTTP/1 und HTTP/2 für Rust;
- warp: ein leichtgewichtiger Framework für Webserver, das auf hohe Geschwindigkeit ausgelegt ist;
- tracing: ein Framework für Anwendungslevel-Tracking und Diagnostik unter Berücksichtigung der Asynchronität;
- rdbc: eine Bibliothek zur Anbindung von MySQL-, Postgres- und SQLite-Datenbanken an Produkte in der Programmiersprache Rust;
- bytes: Utility-Tools zur Arbeit mit Bytes, einschließlich effizienter Byte-Puffer.
Quelle: opennet.ru
