SWIFTTER adalah Perpustakaan Emulator Terminal VT100/Xterm untuk aplikasi Swift yang dapat disematkan ke dalam macOS, aplikasi iOS, aplikasi berbasis teks, aplikasi tanpa kepala atau skenario khusus lainnya. Ini telah digunakan di beberapa klien SSH yang tersedia secara komersial, termasuk kerang aman, terminal LA dan codeedit
Periksa dokumentasi API
Repositori ini berisi mesin emulator terminal yang merupakan Agnostik UI, serta front-end untuk mesin ini untuk iOS menggunakan Uikit, dan macOS menggunakan APPKIT. Emulator terminal berbasis kutukan (untuk meniru xterm di dalam aplikasi konsol) tersedia sebagai bagian dari perpustakaan Termkit.
Kode Sampel Ada beberapa aplikasi sampel minimal untuk Mac dan iOS yang menunjukkan cara menggunakan pustaka di dalam direktori TerminalApp .
Aplikasi pendamping SwifttermApp membangun aplikasi iOS yang sebenarnya yang menggunakan pustaka ini dan lebih lengkap daripada aplikasi pengujian dalam modul ini dan menyediakan UI konfigurasi yang tepat.
Ini adalah port Xtermsharp asli saya, yang sendiri didasarkan pada xterm.js. Pada titik ini, saya menganggap Swiftterm sebagai emulator terminal yang lebih canggih daripada keduanya (pemilihan modulo/aksesibilitas) karena menangani kluster UTF, Unicode dan Grapheme lebih baik daripada itu dan memiliki cakupan emulasi terminal yang lebih lengkap. Xtermsharp umumnya berusaha untuk mengikuti.
Perpustakaan SWIFTMERT itu sendiri berisi kode sumber untuk mesin dan front-end. Front-end dikompilasi secara kondisional berdasarkan platform target.
Mesinnya ada di direktori ini, sedangkan kode untuk macOS hidup di bawah Mac , dan kode untuk iOS, hidup di bawah iOS . Mengingat bahwa keduanya memiliki banyak sifat umum, kode bersama berada di bawah Apple .
Swiftter menggunakan Swift Package Manager untuk pembuatannya, dan Anda dapat menambahkan perpustakaan ke proyek Anda dengan menggunakan URL untuk proyek ini atau garpu.
TerminalView Implementasi NSView MacOS APPKIT adalah kontrol NSVIEW yang dapat digunakan kembali yang dapat dihubungkan ke sumber apa pun dengan mengimplementasikan TerminalViewDelegate .
Saya mengantisipasi bahwa skenario umum akan menjadi tuan rumah perintah UNIX lokal, jadi saya telah memasukkan LocalProcessTerminalView yang merupakan implementasi yang menghubungkan TerminalView ke UNIX pseudo terminal dan menjalankan perintah di sana.
Ada implementasi UIView UIKIT yang setara untuk TerminalView yang seperti NSView Companion -nya adalah tampilan yang dapat disematkan dan dapat digunakan kembali yang dapat dihubungkan ke aplikasi Anda dengan menerapkan terminalViewDelegate yang sama. Berbeda dengan kasus NSVIEW yang berjalan pada Mac, di mana skenario umum adalah menjalankan perintah lokal, mengingat bahwa iOS tidak menawarkan akses ke proses, skenario yang paling umum adalah dengan menangani terminal ini ke host jarak jauh. Dan cara teraman untuk menghubungkan ke sistem jarak jauh adalah dengan SSH.
Kode iOS dan UIKIT berbagi banyak kode, kode itu hidup di bawah direktori Apple.
Perpustakaan inti saat ini tidak memberikan cara yang nyaman untuk terhubung ke SSH, murni untuk menghindari ketergantungan tambahan. Tetapi modul git ini merujuk pada modul yang menarik klien SSH yang sudah dikompilasi (Swiftsh Frugghi), bersama dengan UIKitSsshTerminalView dalam sampel iOS yang menghubungkan TerminalView untuk iOS ke koneksi SSH.
Jika Anda menggunakan XCODE, ada dua proyek Toplevel, satu untuk Mac dan satu untuk iOS di direktori TerminalApp, satu disebut "iosterminal.xcodeproj" dan satu yang disebut "macterminal.xcodeproj".
Ini diperlukan karena Xcode tidak memberikan penyelesaian kode untuk iOS jika Anda memiliki proyek Mac di proyek. Jadi saya harus membaginya. Kedua proyek merujuk paket cepat yang sama.
Saat bekerja dengan proyek -proyek ini, jika Anda memilih aplikasi terminal, itu akan menjalankan yang ini. Untuk menjalankan test suite, pilih target 'Swiftterm' sebagai gantinya, dan Anda dapat menggunakan 'SwifttermFuzz' untuk menjalankan fuzzer.
Anda dapat menggunakan swift build untuk membangun paket, dan swift test untuk menjalankan test suite - tetapi berhati -hatilah bahwa suite tes mengharapkan direktori esctest akan diperiksa untuk dijalankan. Anda dapat melihat bagaimana saya menjalankan ini pada tindakan github dalam file .github/workflows/swift.yml jika Anda ingin melakukan ini secara lokal.
Jika menggunakan XCODE, Anda dapat memilih proyek "Swiftterm", dan kemudian menggunakan Command-U untuk menjalankan test suite.
Masalah GitHub memiliki daftar fitur dan peningkatan yang diinginkan
Dalam jangka panjang, saya juga ingin menambahkan TVOS UIVIEW, front-end SwiftGTK untuk Linux.
24 bit warna

Komandan tengah malam

Dukungan UTF-8 yang solid, rendering yang sangat baik: 

Mendukung hyperlink yang dipancarkan oleh aplikasi modern:

Dukungan iOS:

Dukungan Sixel:


Dokumen tambahan dan berguna:
Test suites: