Se ha lanzado notcurses v1.4.1: una biblioteca para interfaces de texto modernas


Se ha lanzado notcurses v1.4.1: una biblioteca para interfaces de texto modernas

Se ha lanzado una nueva versión de la biblioteca notcurses v1.4.x “¡la saga continúa! ¡wu-tang! ¡wu-tang!

Notcurses es una biblioteca TUI para emuladores de terminales modernos. Traducido literalmente, no maldiciones. Está escrito en C, utilizando encabezados seguros para C++. Envoltorios disponibles para Herrumbre, C + + и Python.

Qué es: una biblioteca que simplifica TUI complejas en emuladores de terminales modernos, admitiendo al máximo colores brillantes y Unicode. Muchas tareas delegadas a curses se pueden realizar usando notcurses (y viceversa).

Lo que no es: una implementación compatible de X/Open curses o un reemplazo de ncurses en sistemas existentes.

Notcurses desaprueba la API X/Open Curses proporcionada como parte de la especificación única de UNIX. Esta especificación está desactualizada desde hace mucho tiempo y, por ejemplo, no admite funciones de terminal como el color de 24 bits no indexado. Como tal, notcurses no reemplaza las maldiciones. Es menos portátil y definitivamente se prueba en menos hardware.
Siempre que es posible, notcurses utiliza la biblioteca terminfo suministrada con ncurses, beneficiándose enormemente de su portabilidad.
Notcurses abre una funcionalidad avanzada para interactuar con los usuarios en estaciones de trabajo, teléfonos, computadoras portátiles y tabletas.

¿Por qué utilizar esta biblioteca no estándar?

  • La seguridad de los subprocesos y el uso eficiente en programas multiproceso han sido una consideración de diseño desde el principio.

  • API mejor formateada en comparación con X/Open:

    • Los identificadores exportados tienen un prefijo para evitar colisiones de espacios de nombres.

    • El archivo objeto de la biblioteca exporta un conjunto mínimo de caracteres. Cuando sea práctico, el código estático se utiliza únicamente para encabezados de línea. Esto facilita la optimización del compilador y reduce los tiempos de carga.

  • Todas las API admiten de forma nativa el juego de caracteres universal (Unicode). La API celular se basa en el concepto. Clúster de grafemas extendido de Unicode.

  • Funciones visuales que incluyen imágenes, fuentes, videos, texto de alto contraste, sprites y áreas transparentes. Todas las API admiten de forma nativa el color de 24 bits, cuantificado según lo necesite el terminal.

  • Licencia Apache2, a diferencia dramas en varios actos, cuál es la licencia ncurses (esta última se resume como una "reformulación del MIT-X11").

Desde la importante versión anterior 1.1.0, se ha agregado una gran cantidad de funciones. Principales cambios:

  • Widget de lectura para ingresar cadenas de formato libre vinculadas a cadenas de lectura

  • Un widget de subproceso para generar un subproceso, administrarlo y transmitir sus resultados.

  • Linux 5.3+ utiliza el nuevo mecanismo clone3+pidfd para gestionar procesos sin una condición de carrera.

  • Widget Fdplane para transmitir un descriptor de archivo arbitrario al plano (en el que se construye el subproceso). Ambos permiten devoluciones de llamada para diseñar o manipular el texto.

  • Rotación de planos y efectos visuales. Cargando visualizaciones desde la memoria. Blitz aleatorio RGBA/BGRx.

  • El menú se puede colocar en cualquiera (o ambos) de los planos superior e inferior.

  • Grandes mejoras en el modo Directo.

  • Polyfills, degradados y texto de alto contraste.

  • Se agregó Tetris como ejemplo.

  • Los contenedores C++ de Marek Habersack ahora tienen la capacidad de generar excepciones (si es necesario).

  • Python y Rust FFI actualizados y probados.

Demostración en vídeo con comentarios del autor.
El libro “¡Hackeando el planeta! con Notcourses" del autor

Fuente: linux.org.ru

Añadir un comentario