Se lanzó el emulador de terminal Ghostty 1.0.0, que utiliza la GPU para acelerar la renderización de contenido. El proyecto está siendo desarrollado por Mitchell Hashimoto, cofundador de HashiCorp y creador de proyectos como Vagrant y Terraform. El autor de Ghostty está intentando incorporar tres cualidades en el nuevo emulador de terminal: alto rendimiento, amplia funcionalidad y una interfaz que parece nativa de cada plataforma compatible. El código del proyecto está escrito en Zig y se distribuye bajo la licencia MIT. Se crean ensamblajes listos para usar para Linux y macOS.
Para construir la interfaz en ensamblados para Linux, se utiliza la biblioteca GTK y para macOS, el marco SwiftUI, que hizo posible utilizar cuadros de diálogo estándar, menús para cada plataforma, una interfaz para cambiar la configuración y el estilo de las ventanas. Para acelerar el renderizado, Linux usa la API de gráficos OpenGL y macOS usa Metal. El rendimiento también se mejora mediante el uso de un subproceso independiente para E/S.
En las pruebas, Ghostty resultó ser 4 veces más rápido que los emuladores de terminal iTerm y Kitty, y Terminal.app, 2 veces más rápido al mostrar el contenido de un archivo grande, por ejemplo, usando el comando "cat big_file.txt". . En comparación con Alacritty, el rendimiento de Ghostty fue aproximadamente el mismo, pero Alacritty va por detrás de Ghostty en términos de funcionalidad.
El terminal puede mostrar emojis, hipervínculos, grafemas complejos y ligaduras (fusionando varios caracteres en uno, por ejemplo, “æ”). El protocolo Kitty se puede utilizar para visualizar imágenes directamente en el terminal. Para integrar la funcionalidad Ghostty en otras aplicaciones, se está desarrollando la biblioteca libghostty, que es compatible con proyectos C y le permite integrar rápidamente un emulador de terminal en sus productos.
La interfaz admite temas oscuros y claros, divide la ventana para mostrar varias sesiones simultáneamente y cambia entre sesiones mediante pestañas. El terminal cumple con el estándar ECMA-4, pero también admite extensiones y secuencias de escape no estándar, como las que ofrece xterm.
Fuente: opennet.ru
