notcurses v1.4.1 telah dirilis - perpustakaan untuk antarmuka teks modern


notcurses v1.4.1 telah dirilis - perpustakaan untuk antarmuka teks modern

Versi baru dari perpustakaan notcurses v1.4.x telah dirilis “kisah berlanjut! wu-tang! wu-tang!”

Notcurses adalah perpustakaan TUI untuk emulator terminal modern. Diterjemahkan secara harfiah – bukan kutukan. Itu ditulis dalam C, menggunakan header aman C++. Pembungkus tersedia untuk Karat, C + + и Ular sanca.

Apa itu: perpustakaan yang menyederhanakan TUI kompleks pada emulator terminal modern, mendukung warna-warna cerah dan Unicode secara maksimal. Banyak tugas yang didelegasikan ke kutukan dapat dilakukan dengan menggunakan notcurses (dan sebaliknya).

Apa yang bukan: Implementasi kutukan X/Open yang kompatibel atau pengganti ncurses pada sistem yang ada.

Notcurses tidak lagi menggunakan X/Open Curses API yang disediakan sebagai bagian dari Spesifikasi UNIX Tunggal. Spesifikasi ini sudah lama ketinggalan jaman dan, misalnya, tidak mendukung fungsionalitas terminal seperti warna 24-bit yang tidak diindeks. Oleh karena itu, notcurses bukanlah pengganti kutukan. Ini kurang portabel, dan pasti diuji pada perangkat keras yang lebih sedikit.
Jika memungkinkan, notcurses menggunakan perpustakaan terminfo yang disertakan dengan ncurses, sehingga mendapatkan keuntungan besar dari portabilitasnya.
Notcurses membuka fungsionalitas tingkat lanjut untuk berinteraksi dengan pengguna di stasiun kerja, ponsel, laptop, dan tablet.

Mengapa menggunakan perpustakaan non-standar ini?

  • Keamanan thread dan penggunaan yang efisien dalam program multi-thread telah menjadi pertimbangan desain sejak awal.

  • API yang diformat lebih baik dibandingkan dengan X/Open:

    • Pengidentifikasi yang diekspor diberi awalan untuk menghindari tabrakan namespace.

    • File objek perpustakaan mengekspor sekumpulan karakter minimal. Jika praktis, kode statis hanya digunakan untuk header baris. Hal ini mempermudah pengoptimalan kompiler dan mengurangi waktu muat.

  • Semua API secara asli mendukung rangkaian karakter universal (Unicode). API sel didasarkan pada konsep Cluster Grafeme yang Diperluas Unicode.

  • Fitur visual termasuk gambar, font, video, teks kontras tinggi, sprite, dan area transparan. Semua API secara asli mendukung warna 24-bit, dikuantisasi sesuai kebutuhan terminal.

  • Lisensi Apache2, tidak seperti drama dalam beberapa undang-undang, yaitu lisensi ncurses (yang terakhir diringkas sebagai "reformulasi MIT-X11").

Sejak rilis signifikan sebelumnya 1.1.0, sejumlah besar fitur telah ditambahkan. Perubahan utama:

  • Widget membaca untuk memasukkan string bentuk bebas yang ditautkan ke string membaca

  • Widget subproses untuk memunculkan subproses, mengelolanya, dan mengalirkan kembali hasilnya.

  • Linux 5.3+ menggunakan mekanisme clone3+pidfd baru untuk mengelola proses tanpa kondisi balapan.

  • Widget Fdplane untuk mengalirkan deskriptor file arbitrer ke bidang (tempat subproses dibuat). Keduanya memungkinkan panggilan balik untuk menata gaya atau memanipulasi teks.

  • Rotasi bidang dan efek visual. Memuat visualisasi dari memori. Blitz RGBA/BGRx acak.

  • Menu dapat ditempatkan pada salah satu (atau keduanya) bidang atas dan bawah.

  • Peningkatan besar dalam mode Langsung.

  • Polyfill, gradien, dan teks kontras tinggi.

  • Menambahkan Tetris sebagai contoh.

  • Pembungkus C++ dari Marek Habersack sekarang memiliki kemampuan untuk memberikan pengecualian (jika diperlukan).

  • Python dan Rust FFI diperbarui dan diuji.

Demo video dengan komentar penulis
Buku “Meretas Planet! dengan Notcourses" dari penulis

Sumber: linux.org.ru

Tambah komentar