Die Version 1.0.0 des Terminalemulators Ghostty wurde veröffentlicht, der die GPU zur Beschleunigung der Darstellung von Inhalten nutzt. Das Projekt wird von Mitchell Hashimoto, Mitbegründer von HashiCorp und Schöpfer von Projekten wie Vagrant und Terraform, betrieben. Der Autor von Ghostty versucht, im neuen Terminalemulator drei Qualitäten zu vereinen – hohe Leistung, umfangreiche Funktionalität und ein an jede unterstützte Plattform angepasstes Interface. Der Code des Projekts ist in der Programmiersprache Zig geschrieben und wird unter der MIT-Lizenz vertrieben. Bereitgestellte Builds wurden für Linux und macOS erstellt.
Für die Gestaltung der Benutzeroberfläche in den Builds für Linux wird die GTK-Bibliothek verwendet, während für macOS das SwiftUI-Framework zum Einsatz kommt. Dies ermöglicht die Nutzung standardgemäßer Dialoge, Menüs, Einstellungsoberflächen und Fensterstile für jede Plattform. Zur Beschleunigung der Darstellung wird in Linux die Grafik-API OpenGL und in macOS Metal verwendet. Die Leistung wird auch durch die Verwendung eines separaten Threads für Ein-/Ausgabe erhöht.
In durchgeführten Tests erwies sich Ghostty als viermal schneller als die Terminalemulatoren iTerm und Kitty sowie doppelt so schnell wie Terminal.app, wenn große Dateien auf dem Bildschirm ausgegeben werden, zum Beispiel mit dem Befehl „cat big_file.txt“. Im Vergleich zu Alacritty lag die Leistung von Ghostty auf einem ähnlichen Niveau, jedoch bleibt Alacritty in der Funktionalität hinter Ghostty zurück.
Im Terminal können Emojis, Hyperlinks, komplexe Grapheme und Ligaturen (die Verschmelzung mehrerer Zeichen zu einem, z. B. „æ“) dargestellt werden. Zum Ausgeben von Bildern direkt im Terminal kann das Kitty-Protokoll verwendet werden. Zur Integration der Funktionalität von Ghostty in andere Anwendungen wird die libghostty-Bibliothek entwickelt, die mit Projekten in der Programmiersprache C kompatibel ist und eine schnelle Integration des Terminalemulators in eigene Produkte ermöglicht.
Die Benutzeroberfläche unterstützt dunkle und helle Themen, die Aufteilung des Fensters zur gleichzeitigen Anzeige mehrerer Sitzungen sowie das Wechseln zwischen Sitzungen über Tabs. Das Terminal erfüllt die Anforderungen des Standards ECMA-4, unterstützt aber auch nicht standardisierte Erweiterungen und Escape-Sequenzen, wie sie in xterm angeboten werden.
Quelle: opennet.ru
