notcurses v1.4.1 a été publié - une bibliothèque pour les interfaces texte modernes


notcurses v1.4.1 a été publié - une bibliothèque pour les interfaces texte modernes

Une nouvelle version de la bibliothèque notcurses v1.4.x est sortie « la saga continue ! Wu Tang! Wu Tang!"

Notcurses est une bibliothèque TUI pour les émulateurs de terminaux modernes. Traduit littéralement – ​​pas de malédictions. Il est écrit en C, en utilisant des en-têtes sécurisés C++. Emballages disponibles pour Calme, C + + и Python.

Qu'est-ce que c'est : une bibliothèque qui simplifie les TUI complexes sur les émulateurs de terminaux modernes, en prenant en charge au maximum les couleurs vives et Unicode. De nombreuses tâches déléguées aux malédictions peuvent être effectuées à l'aide de notcurses (et vice versa).

Ce que ce n'est pas : une implémentation compatible de X/Open Curses ou un remplacement de ncurses sur les systèmes existants.

Notcurses déprécie l'API X/Open Curses fournie dans le cadre de la spécification UNIX unique. Cette spécification est obsolète depuis longtemps et, par exemple, ne prend pas en charge les fonctionnalités du terminal telles que les couleurs 24 bits non indexées. En tant que tel, les non-malédictions ne remplacent pas les malédictions. Il est moins portable et définitivement testé sur moins de matériel.
Dans la mesure du possible, notcurses utilise la bibliothèque terminfo fournie avec ncurses, bénéficiant ainsi grandement de sa portabilité.
Notcurses déverrouille des fonctionnalités avancées pour interagir avec les utilisateurs sur les postes de travail, les téléphones, les ordinateurs portables et les tablettes.

Pourquoi utiliser cette bibliothèque non standard ?

  • La sécurité des threads et une utilisation efficace dans les programmes multithreads ont été une considération de conception dès le début.

  • API plus bien formatée par rapport à X/Open :

    • Les identifiants exportés sont préfixés pour éviter les collisions d'espace de noms.

    • Le fichier objet de bibliothèque exporte un jeu minimal de caractères. Lorsque cela est possible, le code statique est utilisé uniquement pour les en-têtes de ligne. Cela facilite l'optimisation du compilateur et réduit les temps de chargement.

  • Toutes les API prennent en charge nativement le jeu de caractères universel (Unicode). L'API cellulaire est basée sur le concept Cluster de graphèmes étendu d'Unicode.

  • Fonctionnalités visuelles comprenant des images, des polices, des vidéos, du texte à contraste élevé, des sprites et des zones transparentes. Toutes les API prennent en charge nativement les couleurs 24 bits, quantifiées selon les besoins du terminal.

  • Licence Apache2, contrairement à drames en plusieurs actes, qui est la licence ncurses (cette dernière se résume comme une "reformulation du MIT-X11").

Depuis la précédente version importante 1.1.0, un grand nombre de fonctionnalités ont été ajoutées. Principaux changements :

  • Widget de lecture pour saisir des chaînes de forme libre liées à des chaînes de lecture

  • Un widget de sous-processus pour générer un sous-processus, le gérer et diffuser ses résultats.

  • Linux 5.3+ utilise le nouveau mécanisme clone3+pidfd pour gérer les processus sans condition de concurrence.

  • Widget Fdplane pour diffuser un descripteur de fichier arbitraire vers le plan (sur lequel le sous-processus est construit). Les deux permettent aux rappels de styliser ou de manipuler le texte.

  • Rotation des avions et effets visuels. Chargement de visualisations depuis la mémoire. Blitting RGBA/BGRx aléatoire.

  • Le menu peut être placé sur l'un (ou les deux) des plans supérieur et inférieur.

  • Grosses améliorations en mode Direct.

  • Polyfills, dégradés et texte à contraste élevé.

  • Ajout de Tetris comme exemple.

  • Les wrappers C++ de Marek Habersack ont ​​désormais la possibilité de lever des exceptions (si nécessaire).

  • Python et Rust FFI mis à jour et testés.

Démo vidéo avec commentaires de l'auteur
Le livre « Hacker la planète ! avec Notcourses" de l'auteur

Source: linux.org.ru

Ajouter un commentaire