A fost publicat release-ul emulatorului de terminal Ghostty 1.0.0, care utilizează GPU pentru accelerarea redării conținutului. Proiectul este dezvoltat de Mitchell Hashimoto, cofondator al companiei HashiCorp și creator al unor proiecte precum Vagrant și Terraform. Autorul Ghostty își propune să integreze în noul emulator de terminal trei calități - performanță ridicată, funcționalitate extinsă și o interfață care arată nativ pe fiecare platformă suportată. Codul proiectului este scris în limbajul Zig și este distribuit sub licența MIT. Build-urile finite sunt disponibile pentru Linux și macOS.
Pentru construirea interfeței în build-urile pentru Linux, s-a folosit biblioteca GTK, iar pentru macOS - framework-ul SwiftUI, ceea ce a permis utilizarea dialogurilor, meniurilor și interfeței de setări native pentru fiecare platformă, precum și stilizarea ferestrelor. Pentru accelerarea redării pe Linux se utilizează API-ul grafic OpenGL, iar pe macOS - Metal. Performanța este, de asemenea, îmbunătățită prin utilizarea unui fir separat pentru input/output.
În testele efectuate, Ghostty s-a dovedit a fi de 4 ori mai rapid decât emulatoarele de terminal iTerm și Kitty și de 2 ori mai rapid decât Terminal.app, atunci când se redă conținutul unui fișier mare, de exemplu, utilizând comanda „cat big_file.txt”. Comparativ cu Alacritty, performanța Ghostty a fost aproximativ pe același nivel, dar Alacritty rămâne în urmă în ceea ce privește funcționalitatea.
În terminal pot fi afișate emoji, hyperlinkuri, grafeme complexe și ligaturi (combinarea mai multor simboluri într-unul, de exemplu, „æ”). Pentru redarea imaginilor direct în terminal poate fi utilizat protocolul Kitty. Pentru integrarea funcționalității Ghostty în alte aplicații se dezvoltă biblioteca libghostty, compatibilă cu proiectele în limbajul C, care permite integrarea rapidă a emulatorului de terminal în produsele proprii.
Interfața suportă teme de întuneric și lumină, împărțirea ferestrei pentru a afișa simultan mai multe sesiuni, comutarea între sesiuni prin tab-uri. Terminalul respectă cerințele standardului ECMA-4, dar suportă și extensii și secvențe escape care nu sunt incluse în standard, cum ar fi cele oferite în xterm.
Sursa: opennet.ro
