უკან დაბრუნება

Libghostty 1.0-მა პორტაბელური ტერმინალის ემულაციის ბიბლიოთეკის C ABI სტაბილური გახადა
SiTech AI Team3 წთ. საკითხავი

Libghostty 1.0-მა პორტაბელური ტერმინალის ემულაციის ბიბლიოთეკის C ABI სტაბილური გახადა

მიტჩელ ჰაშიმოტომ 2026 წლის 6 ნოემბერს გამოაცხადა libghostty 1.0: Ghostty-დან ამოღებული პორტაბელური C ბიბლიოთეკა ტერმინალის ემულაციისთვის, რომელსაც ახლა უკვე სტაბილური ბიბლიოთეკა და C ABI, ფართო დანერგვა და პაკეტირების მხარდაჭერა აქვს.

მიტჩელ ჰაშიმოტომ 2026 წლის 6 ნოემბერს გამოაცხადა libghostty 1.0: Ghostty-ს ბირთვიდან ამოღებული პორტაბელური, მაღალი წარმადობის C ბიბლიოთეკა ტერმინალის ემულაციისთვის. ეს რელიზი როგორც ბიბლიოთეკას, ისე მის C ABI-ს სტაბილურს ხდის. დაახლოებით ერთი წლის წინ Zig-მოდული ახლახანს იყო შერწყმული, C API არ არსებობდა და მომხმარებელი მხოლოდ Ghostty იყო.

დანერგვა და ეკოსისტემა

JetBrains-ის IDE-ების ტერმინალები libghostty-ზე მუშაობს და JetBrains-ის ანგარიშით მას 12,5 მილიონზე მეტი აქტიური მომხმარებელი ჰყავს. Neovim-ში უკვე დამტკიცებულია pull request-ი libvterm-ის libghostty-vt-ით ჩანაცვლებისთვის; ეს 10 წლის წინანდელ პრობლემას დახურავს ზომის შეცვლისას ისტორიის ხელახალი გადალაგების შესახებ, ხოლო შემდგენლები გაერთიანებამდე ტეგირებულ რელიზს ელიან. KDE-ს შემქმნელები მასზე აგებული Konsole-ის შემცვლელს ცდიან, Vercel-ის Turborepo მას ამოცანების გამოტანის TUI-ში გამოსახვისთვის იყენებს, devenv მას გარსების მართვისთვის იყენებს, ხოლო Antithesis-მა იგი TUI პროგრამების fuzz-ტესტირებისთვის გამოიყენა და btop-ში და სხვებში ნამდვილი ხარვეზები იპოვა. Ghostel მას Emacs-ში მოაქვს, ghostty-web WASM-შენაწყობს Xterm.js-თან თავსებადი API-ით გვთავაზობს, ხოლო OrbStack მას ჩაშენებს. მასზე აგებულია ახალი ტერმინალები და აგენტური კოდირების ხელსაწყოები, მაგალითად herdr და cmux, ხოლო საზოგადოების მიერ შექმნილი ბმულები მოიცავს Rust-ს, Go-ს, JavaScript-ს, Swift-ს, Python-ს, .NET-ს, Elixir-ს, Dart-ს, Java-ს და სხვა ენებს. awesome-libghostty სია ასზე მეტ პროექტს აღრიცხავს. პროექტის ცნობით, დღეს libghostty-ით მართულ ტერმინალს გაცილებით მეტი ადამიანი იყენებს, ვიდრე Ghostty-ს თავად აპლიკაციას, და სხვაობა ძალიან დიდია.

ABI-ს სტაბილურობა და პაკეტირება

libghostty-vt სემანტიკურ ვერსიონირებას მისდევს მკაცრი ABI-თავსებადობით და აღსრულებადი ABI-სტაბილურობის პოლიტიკა აქვს. ობიექტები არაგამჭვირვალე ჰენდლებია, მნიშვნელობები enum-ით დაკავშირებულ გეტერებსა და სეტერებს გადის, არაგამჭვირვალე სტრუქტურები ზომას ან დარეზერვებულ შევსებას ატარებს, ხოლო enum-ები იმდენად, რამდენადაც C-ს სტანდარტი უშვებს, ყველა კომპილატორზე int-ზეა დამაგრებული. ახალი ჰედერები ძველ ბიბლიოთეკასთან დაკავშირებისას ავარიის ნაცვლად GHOSTTY_UNSUPPORTED-ს აბრუნებს. CI პოლიტიკას libabigail-ით Linux-ზე და ეტალონური ტიპების მანიფესტებით macOS-სა და WebAssembly-ზე აკონტროლებს, ხოლო ELF-ის ექსპორტირებული სიმბოლოები ვერსიონირებულია. 1.0 რელიზი ასევე ამატებს აგების ინსტრუმენტებს, ხელმოწერილ წყაროსა და დამოკიდებულებების tarball-ებს, დოკუმენტაციას და პაკეტირების მხარდაჭერას: სწორ SONAME-ს, ჰედერებს, pkg-config ფაილებს და CMake-პაკეტის კონფიგურაციას. ბიბლიოთეკა MIT ლიცენზიითაა, გაშვებისას libc-ს გარდა არაფერი სჭირდება და freestanding რეჟიმშიც შეიძლება აგება. მისი დამოკიდებულებები დაშვებითი ლიცენზიებითაა და მოიცავს simdutf-ს, Google Highway-ს, კომპაქტურ Unicode ცხრილს და Wuffs-ს; დამოკიდებულებების ხეში copyleft კოდი არ არის.

პორტაბელურობა და რესურსების მოხმარება

გამოცდილი პლატფორმებია Linux glibc-ით ან musl-ით x86_64-ზე და aarch64-ზე, macOS 13 და მომდევნო ვერსიები x86_64-ზე და aarch64-ზე, iOS 13 და მომდევნო ვერსიები aarch64-ზე, FreeBSD x86_64-ზე და aarch64-ზე, Windows x86_64-ზე, Android aarch64-ზე, x86_64-ზე და arm-ზე, ასევე WebAssembly wasm32 freestanding. დამატებითი მხოლოდ აგების სამიზნეებია bare metal riscv32 და thumb, WebAssembly WASI wasm32, Windows arm64, illumos x86_64 და 32-ბიტიანი x86. ბიბლიოთეკა ნაკადებს არ ქმნის, მეხსიერებას მხოლოდ მორგებადი ალოკატორით გამოყოფს და მინიმალურად იყენებს გამოთვლით რესურსებს და მეხსიერებას; ავტორი ამბობს, რომ 4 ბირთვიან და 8 გბ ოპერატიული მეხსიერების მქონე Linux სერვერზე 10 000 აქტიურ ტერმინალს გაუშვა ცოცხალი გარსებით და dash გამოიყენა, რადგან bash-ს მეტი მეხსიერება სჭირდებოდა.

რა მოჰყვება შემდეგ

პროექტის ცნობით, ახლა ტერმინალის შექმნა დაახლოებით 1 500 სტრიქონი C კოდითაა შესაძლებელი, უფრო მეტი ფუნქციით და უკეთესი წარმადობით, ვიდრე 2025 წელს არსებულ თითქმის ნებისმიერ ტერმინალს ჰქონდა, და 2026 წლის დღევანდელ უმრავლესობასაც. libghostty-vt სტაბილურობაზე გაამახვილებს ყურადღებას და პარალელურად არსებულ ტერმინალის პროტოკოლების რაც შეიძლება მეტს დანერგავს, ჩართვისა და გამორთვის ვარიანტებით. დოკუმენტაცია, მაგალითები და ჩამოტვირთვები ხელმისაწვდომია lib.ghostty.org-ზე.

წყაროები: Mitchell Hashimoto

გააზიარე ციფრული გამოცდილება

SiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.