LINUX.ORG.RU

Вышла notcurses v1.4.1 — библиотека для современных текстовых интерфейсов

 , , ,


4

4

Вышла новая версия библиотеки notcurses v1.4.x «the saga continues! wu-tang! wu-tang!»

Notcurses это библиотека TUI для современных терминальных эмуляторов. Буквально переводя – не проклятия (not curses). Она написана на С, с использованием C++-safe headers. Доступны обёртки для Rust, C++ и Python.

Что это такое: библиотека, упрощающая сложные TUI на современных терминальных эмуляторах, максимально поддерживающая яркие цвета и Unicode. Многие задачи, делегированные curses, могут быть выполнены с помощью notcurses (и наоборот).

Чем это не является: совместимой реализацией X/Open curses или заменой ncurses на существующих системах.

Notcurses отказывается от API X/Open Curses, поставляемого как часть Single UNIX Specification. Эта спецификация давно устарела и, например, не поддерживает такую функциональность терминала, как неиндексированный 24-битный цвет. Как таковая, notcurses не является заменой curses. Она менее портативна, и определенно протестирована на меньшем количестве оборудования. Когда это возможно, notcurses использует библиотеку terminfo, поставляемую вместе с ncurses, извлекая большую пользу из ее переносимости. Notcurses открывает расширенные функциональные возможности для взаимодействия с пользователями на рабочих станциях, телефонах, ноутбуках и планшетах.

Зачем использовать эту нестандартную библиотеку?

  • Потокобезопасность и эффективное использование в многопоточных программах с самого начала было проектным соображением.

  • Более правильно оформленное API по сравнению с X/Open:

    • Экспортируемые идентификаторы имеют префикс, чтобы избежать коллизий в пространствах имен.

    • Объектный файл библиотеки экспортирует минимальный набор символов. Там, где это целесообразно, используется статический код только для строчных заголовков. Это облегчает оптимизацию компилятора и сокращает время загрузки.

  • Все API изначально поддерживают универсальный набор символов (Unicode). API для ячеек основан на концепции Unicode’s Extended Grapheme Cluster.

  • Визуальные возможности, включая изображения, шрифты, видео, высококонтрастный текст, спрайты и прозрачные области. Все API нативно поддерживают 24-битный цвет, квантованный по мере необходимости для терминала.

  • Лицензия Apache2, в отличие от драмы в нескольких актах, которая является лицензией ncurses (последняя резюмируется как «переформулирование MIT-X11»).

С момента предыдущего значимого релиза 1.1.0 было добавлено огромное количество функций. Основные изменения:

  • Виджет для чтения для ввода строк произвольной формы с привязкой к строкам для чтения

  • Виджет subprocess для порождения подпроцесса, управления им и потоковой передачи его результатов обратно.

  • В Linux 5.3+ используется новый механизм clone3+pidfd для управления процессами без race condition.

  • Виджет Fdplane для потоковой передачи произвольного файлового дескриптора на плоскость (на которой построен подпроцесс). Оба позволяют обратным вызовам стилизовать или иным образом обрабатывать текст.

  • Вращение плоскостей и визуальных эффектов. Загрузка визуализаций из памяти. Произвольное блитирование RGBA/BGRx.

  • Меню можно размещать на любой (или на обеих) из верхних и нижних плоскостей.

  • Большие улучшения в режиме Direct.

  • Polyfills, градиенты и высококонтрастный текст.

  • Добавлен тетрис в качестве примера.

  • Обертки C++ от Marek Habersack получили возможность бросать исключения (если нужно).

  • Python и Rust FFI обновлены и протестированы.

Видео демо с комментариями автора Книга «Hacking The Planet! with Notcurses» от автора

>>> Подробности

★★

Проверено: alpha ()

Ответ на: комментарий от cocucka

первый Leisure Suit Larry был как раз в 16 цветах

Была версия в 4.

что не особо мешало фантазии.

Просто в графике ничего интересного не было. Всё текстом.

Хотя 256 цветная версия все ж лучше.

256-цветная версия — убожество, по крайней мере английская. Русский перевод и ремейк не оценивал.

FullHD … porn

После всплеска интерес к нему пропал. Потому что хорошо видно прыщи и шрамы от пластических операций.

question4 ★★★★★ ()
Ответ на: комментарий от LINUX-ORG-RU

Мне вот приходится додумывть что у тебя на аватарке.

Сразу видно человека, который плохо знаком с тем, что было на игровых автоматах в начале 90-х. На моей аватарке вот это: https://upload.wikimedia.org/wikipedia/en/5/51/Magician_Lord_arcade_flyer.jpg .

saahriktu ★★★★★ ()

написана на С, с использованием C++-safe headers. Доступны обёртки для Rust

А почему не наоборот — написана на расте, доступны обёртки для C?

ChALkeR ★★★★★ ()
Ответ на: комментарий от ChALkeR

Может быть железо, где нет rust, но есть и C и C++. Например, отечественные говнопроцессоры и их компиляторы. Кому-то это важно.

Владимир, гомосексуалист.

anonymous ()
Ответ на: комментарий от ChALkeR

А почему не наоборот — написана на расте, доступны обёртки для C?

Потому, что растофаны программируют на своем чуде только в постах на форуме, в то время как здравые люди просто пишут код на «небезопасных» языках, результат налицо, как и видно по этому треду.

anonymous ()
Ответ на: комментарий от DELIRIUM

Вы меня извините, но это какая-то туйня…

+1 а шо ты еще ожидал от человека с отрезанным пэнисом на аватарке? сам-то последнюю звезду загасил? теперь зажигать будешь?

crypt ★★★★★ ()
Последнее исправление: crypt (всего исправлений: 1)

Видео демо с комментариями автора Книга «Hacking The Planet! with Notcurses» от автора

В чем смысл светить страшным хлебалом и бардаком в комнате перед камерой.

Причем никакой смысловой нагрузки демонстрация красного лостящегося таблета в обрамлении немытых патлов и срача в жилище не несёт

r_asian ★☆☆ ()
Ответ на: комментарий от cocucka

Ну это как дичайшпие законы в некоторых амерских штататх. На бумаге есть, на практике применялись лет 100 назад. В смысле, ты первый начал этот тег ставить.

anonymous ()
Ответ на: комментарий от hatred

Второй — это порт, сделанный Sergio Sigala и выпущенный под лицензией BSD.

Версии 0.7 и 0.8 доступны здесь: https://web.archive.org/web/20131222174610/http://ibiblio.org/pub/linux/devel/lang/c++/

Также, оказывается, ещё жива домашняя страница автора: http://www.sigala.it/sergio/tvision/

Кто-то даже выложил код на GitHub и попытался его подправить: https://github.com/benwbooth/tvision

Bass ★★★★ ()
Последнее исправление: Bass (всего исправлений: 2)
Ответ на: комментарий от hatred

На самом деле, как выяснилось, есть ещё код, переписанный с использованием STL. Тоже BSD-лицензия:

https://sourceforge.net/projects/stl-tvision/

Это третий «форк».

Bass ★★★★ ()
Последнее исправление: Bass (всего исправлений: 1)

Это реально TUI с виджетами чекбоксов, списков, кнопочек, полей ввода со скроллом и прочего всего или просто разноцветный цвет в консольке?

anonymous ()
Ответ на: комментарий от hatred

Не только у тебя =)

Рекомендую ещё посмотреть на:

Возможно, consoleframework заведётся на Mono или, что интереснее, .NET Core (последний проект «опакечен» как минимум для Fedora и Debian).

Bass ★★★★ ()

Нафига заливать картинку в таком огромном разрешении и весом более 1 Мб? Лор всегда был лёгким сайтом, как завезли картинки, так тут начали их публиковать без всякой обработки для веба.

th3m3 ★★★★★ ()

hello my

hello comrades! i have made a small study of русский язык, but write it far less competently than you do my English–but we all know американцов are without the knowledge, yes? only enough to read the notebooks of your Андре́й Дми́триевич Са́харов and Я́ков Бори́сович Зельдо́вич. i am a tremendous fan of Война и мир and Бра́тья Карама́зовы, not to mention Мастер и Маргарита, but only in translation :/. i am honored to be featured in the premier Russian Linux website!

sosodank ()