Entwicklung & Code

Ghostling macht Terminal-Emulation zur C-Bibliothek


Mit Ghostling hat das Ghostty-Projekt eine Referenzimplementierung veröffentlicht, die den Kern des Terminal-Emulators als eigenständige C-Bibliothek nutzbar macht. Theoretisch wird die Terminal-Emulation so zu einer wiederverwendbaren Komponente, die sich in unterschiedliche Softwareprojekte einbetten lässt. Denkbar ist der Einsatz etwa in IDEs, Entwicklerwerkzeugen oder spezialisierten Workflow-Anwendungen, die eine integrierte Terminal-Ansicht benötigen, ohne diese selbst von Grund auf implementieren zu müssen.

Weiterlesen nach der Anzeige

Allerdings handelt es sich bei Ghostling aktuell nicht um einen vollwertigen Terminal-Emulator, sondern um eine bislang explizit minimale Demo. Das Projekt besteht im Kern aus einem einzigen C-File und verwendet die Grafikbibliothek Raylib für Fenster und Rendering. Ghostling soll zeigen, wie wenig Code nötig ist, um auf Basis der neuen Library libghostty-vt einen funktionierenden Terminal-Emulator aufzubauen. Trotz des geringen Umfangs deckt Ghostling bereits wesentliche Terminal-Funktionen ab, darunter 24-Bit-Farben, Unicode-Unterstützung, Maus-Tracking, das Kitty-Keyboard-Protokoll sowie Scrollback mit Text-Reflow.

Die für viele Entwickler spannende Neuerung ist libghostty-vt, eine aus dem Ghostty-Projekt extrahierte Bibliothek ohne externe Abhängigkeiten. Sie übernimmt das Parsen von VT-Sequenzen, die Verwaltung des Terminal-Zustands und das Management des Renderer-States. GUI-Funktionen wie Tabs, Split-Panes, Fensterverwaltung oder Konfigurationsoberflächen sind nicht Teil der Library. Diese sollen von den einbettenden Anwendungen selbst bereitgestellt werden. Einige Features wie das Kitty-Graphics-Protokoll oder OSC-Clipboard-Support sind noch nicht über die API verfügbar, stehen aber auf der Roadmap. Windows-Unterstützung ist auf Library-Ebene vorhanden, in Ghostling selbst jedoch noch nicht getestet.

Die Library basiert auf dem regulären Ghostty-Code und übernimmt dessen SIMD-optimiertes Parsing, Unicode-Support und die durch Fuzzing abgesicherte Codebasis. Sie bietet eine C- und eine Zig-API an und lässt sich laut Projektbeschreibung auf GitHub auch in WebAssembly-Umgebungen einsetzen. Erste Experimente mit libghostty in der Community finden sich in der zugehörigen Diskussion auf Hacker News. Bei Ghostling handelt es sich wie bei Ghostty um Open-Source-Software. Das Hauptprojekt liegt aktuell in Version 1.3.0 vor.


(fo)



Source link

Beliebt

Die mobile Version verlassen