Release von Tokio 1.13.0, einer Plattform zur Erstellung von asynchronen Anwendungen in der Programmiersprache Rust

Die Version 1.13.0 der Tokio-Plattform wurde veröffentlicht, die zur Erstellung von hochleistungsfähigen, ereignisorientierten Anwendungen in der Programmiersprache Rust dient und Multithreading sowie die asynchrone Verarbeitung von Netzwerk-Anfragen unterstützt. Das Projekt ist in Rust geschrieben und steht unter der MIT-Lizenz. In der neuen Version gibt es Erweiterungen der Dokumentation, mehrere Korrekturen im Netzwerk-Subsystem und im Synchronisationssystem.

Tokio umfasst die folgenden Komponenten:

  • Einen multithreaded Input/Output-Scheduler, dessen Funktion es ist, Ressourcen nur den Threads (im Kontext der parallelen Ausführung) bereitzustellen, die bestimmten Bedingungen entsprechen, was hilft, Race Conditions zu vermeiden, die häufig in Programmen auftreten, die in Sprachen ohne sichere Speicher- und Ressourcenverwaltung geschrieben sind;
  • Ein Backend, das die Kompatibilität mit den von verschiedenen Betriebssystemen bereitgestellten Mechanismen zur Verbindungsmultiplexierung wie epoll, kqueue und IOCP gewährleistet;
  • Typen und Bindungen mit der Implementierung asynchroner 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 asynchroner Eingabe/Ausgabe, die TCP/UDP-Sockets, Dateioperationen sowie Methoden zur Verwaltung von Signalen und Prozessen abdeckt.

Die Entwickler betonen solche Eigenschaften ihres Produkts wie die hohe Leistung, die mit der Geschwindigkeit auf „nackter Hardware“ vergleichbar ist, hervorragende Skalierbarkeit und Zuverlässigkeit, die durch das Typsystem und das Parallelitätsmodell der Programmiersprache Rust gewährleistet sind.

Das Repository hat über 500 Mitwirkende, darunter Vertreter von AWS, Azure, Comcast, Dropbox und Facebook. Als Abhängigkeiten von Tokio werden folgende Produkte verwendet:

  • hyper: eine schnelle und sichere Implementierung von HTTP/1 und HTTP/2 für Rust;
  • warp: ein leichtgewichtiger Framework für Webserver., der auf hohe Geschwindigkeit ausgerichtet ist;
  • tracing: ein Framework für die Anwendungsüberwachung 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: Werkzeuge zur Arbeit mit Bytes, einschließlich effizienter Byte-Puffer.

Quelle: opennet.ru

60GB SSD 8Gb DDR4