Терминал эмуляцийн шинэ стандарт: JetBrains, Neovim-ийн цөм болсон Libghostty 1.0 албан ёсоор гарлаа
Терминал эмулятор хөгжүүлэх нь 1970-аад оны VT100-аас эхлэлтэй олон арван жилийн эртний стандартууд, түмэн янзын escape sequence болон янз бүрийн үйлдлийн системийн онцлогуудаас шалтгаалан компьютерын шинжлэх ухааны хамгийн төвөгтэй, толгойны өвчин болсон салбаруудын нэг байсаар ирсэн. Ихэнх хөгжүүлэгчид өөрсдийн IDE, редактор эсвэл хэрэгсэлдээ терминал суулгахын тулд 10 гаруй жилийн настай, хурд муутай сангуудыг ашиглахаас өөр аргагүй байдалд ордог байв.
Тэгвэл HashiCorp-ийг хамтран үүсгэн байгуулж (Vagrant, Terraform зэрэг суурь хэрэгслүүдийг бүтээсэн), сүүлийн жилүүдэд GPU-хурдатгалтай, хурдан бөгөөд чамин Ghostty терминалыг бичиж буй нэрт инженер Митчелл Хашимото (Mitchell Hashimoto) өчигдөр Libghostty (libghostty-vt) 1.0 хувилбарыг албан ёсоор зарлалаа.
Энэ нь зүгээр нэг сан биш, харин хөгжүүлэгчдийн өдөр тутам хэрэглэдэг олон сая программ хангамжийн суурь архитектурт томоохон тэсрэлт хийж буй үйл явдал юм.
Ghostty-ийн нууц зорилго: Зөвхөн терминал апп биш байв
Митчелл Хашимото анх 2022 онд Zig хэл дээр Ghostty төслийг эхлүүлэхдээ "Орчин үед яагаад дахин нэг шинэ терминал хийх гээд байгаа юм бэ?" гэсэн асуулттай байнга тулгарч байжээ. Түүний хариулт тун энгийн байсан: Ghostty GUI аппликейшн нь ердөө л уг сангийн технологийн хүчин чадлыг харуулах "үзэсгэлэн" (tech demo) байсан.
Митчеллийн гол зорилго нь анхнаасаа аливаа аппликейшнд шууд шигтгэж (embed) ашиглаж болох, өндөр хурдтай, стандартыг чанд баримталдаг, санах ойн хувьд хэмнэлттэй терминал эмуляцийн цөм санг бүтээх явдал байв. Тэрхүү зорилго биелэлээ олж, өнөөдөр Ghostty-ийн цөмөөс тусгаарлагдсан libghostty-vt бүрэн бие дааж, 1.0 буюу C ABI-ийн Semantic Versioning тогтвортой байдлын баталгааг авлаа.
1.0 хүрэхээсээ өмнө 12.5 сая хэрэглэгчийн гарт хүрсэн нь
Ихэнх open-source төслүүд эхлээд 1.0 хувилбараа гаргаж, дараа нь хэрэглэгч хайдаг бол Libghostty аль хэдийн IT салбарын аваргуудын гол сонголт болоод амжжээ.
- JetBrains-ийн 12.5 сая хөгжүүлэгч: JetBrains өөрсдийн IntelliJ IDEA, PyCharm, WebStorm, GoLand зэрэг бүх IDE-дээ олон жил ашигласан хуучин Java суурьтай JediTerm сангаа халж, оронд нь Libghostty-г нэвтрүүлсэн байна. Одоогоор JetBrains-ийн 12.5 сая идэвхтэй хөгжүүлэгчид Libghostty дээр ажиллаж байна.
- Neovim-ийн 10 жилийн настай асуудлыг шийдэв: Neovim төсөл хуучин
libvterm-ийг хасаж, оронд ньlibghostty-vt-г суурилуулах Pull Request-ийг бүрэн баталсан байна. Ингэснээр терминалын хэмжээг өөрчлөх үед scrollback текст эвдэрдэг Neovim-ийн 10 жилийн түүхтэй алдаа бүрэн шийдэгдэж байгаа бөгөөд дистрибьюшнүүд энэхүү 1.0 хувилбарыг системдээ нэмэх мөчид Neovim-ийн үндсэн салбарт нэгдэх юм. - KDE ба бусад төслүүд: KDE-ийн хөгжүүлэгчид Konsole-ийг орлох "Kwi" хэмээх шинэ үеийн GPU терминалаа Libghostty дээр суурилуулан туршиж эхэлсэн байна.
- Vercel ба хэрэгслүүд: Turborepo-ийн терминалын гаралт дүрслэх (TUI task rendering), Emacs-ийн Ghostel терминал, болон Antithesis-ийн fuzzy testing шалгуурууд хүртэл Libghostty-г ашиглаж эхэлжээ.
Libghostty 1.0 яагаад чухал вэ? Техникийн давуу талууд
- Цэвэр C ABI ба тогтвортой байдал: Сан өөрөө орчин үеийн Zig хэлээр бичигдсэн боловч гадагшаа цэвэр, өөгүй C API/ABI гаргадаг. Энэ нь Rust, Go, Python, Swift, Java, C# зэрэг ямар ч хэлнээс FFI (Foreign Function Interface) ашиглан маш бага зардлаар шууд дуудах боломжийг олгож байна.
- Headless & Embedded Архитектур: Libghostty нь зөвхөн график дүрслэл (rendering) хийх албагүй. Терминалын төлөв (state), cursor tracking, Unicode 15 дэмжлэг, UTF-8 parsing, ANSI escape кодуудыг CPU түвшинд секундыг хэд хуваасны нэгд боловсруулна. График дүрслэлийг та өөрийн хүссэнээр (Metal, OpenGL, Vulkan, эсвэл цэвэр Text) хийж болно.
- AI Agent эрин үеийн терминалын хэрэгцээ: Сүүлийн саруудад Claude Code зэрэг автоном AI агентууд терминал болон CLI орчинд шууд командууд ажиллуулж, үр дүнг унших шаардлага огцом нэмэгдсэн. TUI (Text User Interface) программтай "харьцах" AI агентуудад headless хэлбэрээр ажиллах найдвартай терминал эмулятор зайлшгүй шаардлагатай байгаа бөгөөд Libghostty 1.0 нь энэ орон зайг яг цагт нь дүүргэж байна.
Цаашид юу хүлээж байна вэ?
Митчелл Хашимото өөрийн блогоор дамжуулан уг сангийн 1.0 хувилбарт semantic versioning-ийг чанд мөрдөж, C ABI-ийг ямар ч тохиолдолд эвдэхгүй байх бодлого баримтална гэдгээ тунхаглалаа.
Хэрэв та өөрийн төсөлдөө консол консолын логик нэмэх, IDE-дээ терминал нэгтгэх, эсвэл AI агентууддаа терминалын бодит орчин үүсгэж өгөхөөр төлөвлөж байгаа бол дугуйг шинээр зохион бүтээх шаардлагагүй боллоо. Libghostty 1.0 бол таны хайж байсан хамгийн бат бөх, хурдтай суурь дэд бүтэц байх болно.
Эх сурвалж: Mitchell Hashimoto хувийн блог (Libghostty 1.0)
Сэтгэгдэл
Ачаалж байна...