notcurses v1.4.1 đã được phát hành - thư viện cho giao diện văn bản hiện đại


notcurses v1.4.1 đã được phát hành - thư viện cho giao diện văn bản hiện đại

Một phiên bản mới của thư viện notcurses v1.4.x đã được phát hành “câu chuyện vẫn tiếp tục! Wu Tang! Wu Tang!"

Notcurses là thư viện TUI dành cho trình mô phỏng thiết bị đầu cuối hiện đại. Dịch theo nghĩa đen – không phải chửi bới. Nó được viết bằng C, sử dụng các tiêu đề an toàn C++. Trình bao bọc có sẵn cho Rust, C + + и Python.

Nó là gì: một thư viện đơn giản hóa các TUI phức tạp trên trình mô phỏng thiết bị đầu cuối hiện đại, hỗ trợ tối đa màu sắc tươi sáng và Unicode. Nhiều nhiệm vụ được giao cho lời nguyền có thể được thực hiện bằng cách sử dụng notcurses (và ngược lại).

Nó không phải là gì: Triển khai tương thích các lời nguyền X/Open hoặc thay thế cho các lời nguyền trên các hệ thống hiện có.

Notcurses không dùng nữa API X/Open Curses được cung cấp như một phần của Đặc tả UNIX đơn. Thông số kỹ thuật này đã lỗi thời từ lâu và không hỗ trợ chức năng đầu cuối như màu 24-bit không được lập chỉ mục. Như vậy, notcurses không phải là sự thay thế cho những lời nguyền. Nó ít di động hơn và chắc chắn được thử nghiệm trên ít phần cứng hơn.
Bất cứ khi nào có thể, notcurses sử dụng thư viện terminfo được cung cấp cùng với ncurses, được hưởng lợi rất nhiều từ tính di động của nó.
Notcurses mở ra chức năng nâng cao để tương tác với người dùng trên máy trạm, điện thoại, máy tính xách tay và máy tính bảng.

Tại sao nên sử dụng thư viện không chuẩn này?

  • An toàn luồng và sử dụng hiệu quả trong các chương trình đa luồng đã được cân nhắc thiết kế ngay từ đầu.

  • API được định dạng tốt hơn so với X/Open:

    • Mã định danh đã xuất được thêm tiền tố để tránh xung đột vùng tên.

    • Tệp đối tượng thư viện xuất một bộ ký tự tối thiểu. Trong thực tế, mã tĩnh chỉ được sử dụng cho tiêu đề dòng. Điều này giúp tối ưu hóa trình biên dịch dễ dàng hơn và giảm thời gian tải.

  • Tất cả các API đều hỗ trợ bộ ký tự phổ quát (Unicode). API di động dựa trên khái niệm Cụm đồ thị mở rộng của Unicode.

  • Các tính năng trực quan bao gồm hình ảnh, phông chữ, video, văn bản có độ tương phản cao, họa tiết và vùng trong suốt. Tất cả các API đều hỗ trợ màu 24 bit, được lượng tử hóa khi thiết bị đầu cuối cần.

  • Giấy phép Apache2, không giống như phim truyền hình trong một số hành vi, đó là giấy phép ncurses (sau này được tóm tắt là "sự cải cách của MIT-X11").

Kể từ phiên bản quan trọng 1.1.0 trước đó, một số lượng lớn các tính năng đã được thêm vào. Những thay đổi chính:

  • Tiện ích đọc để nhập các chuỗi dạng tự do được liên kết với các chuỗi đọc

  • Một tiện ích quy trình con để tạo ra một quy trình con, quản lý nó và truyền lại kết quả của nó.

  • Linux 5.3+ sử dụng cơ chế clone3+pidfd mới để quản lý các quy trình mà không có điều kiện dồn đuổi.

  • Tiện ích Fdplane để truyền trực tuyến bộ mô tả tệp tùy ý tới mặt phẳng (trên đó quy trình con được xây dựng). Cả hai đều cho phép gọi lại để tạo kiểu hoặc thao tác văn bản.

  • Xoay mặt phẳng và hiệu ứng hình ảnh. Đang tải hình ảnh trực quan từ bộ nhớ. Đốt cháy RGBA/BGRx ngẫu nhiên.

  • Menu có thể được đặt trên một trong hai (hoặc cả hai) mặt phẳng trên và dưới.

  • Những cải tiến lớn trong chế độ Trực tiếp.

  • Polyfill, độ dốc và văn bản có độ tương phản cao.

  • Đã thêm Tetris làm ví dụ.

  • Trình bao bọc C++ từ Marek Habersack hiện có khả năng đưa ra các ngoại lệ (nếu cần).

  • Python và Rust FFI đã được cập nhật và thử nghiệm.

Video demo có nhận xét của tác giả
Cuốn sách “Hacking The Planet! với Notcourses" của tác giả

Nguồn: linux.org.ru

Thêm một lời nhận xét