Uma nova versão da biblioteca notcurses v1.4.x foi lançada “a saga continua! wu-tang! wu-tang!”
Notcurses é uma biblioteca TUI para emuladores de terminal modernos. Traduzido literalmente – não maldições. Ele é escrito em C, usando cabeçalhos seguros para C++. Invólucros disponíveis para Ferrugem, C + + и Python.
O que é: uma biblioteca que simplifica TUIs complexas em emuladores de terminal modernos, com suporte máximo para cores brilhantes e Unicode. Muitas tarefas delegadas a maldições podem ser executadas usando notcurses (e vice-versa).
O que não é: Uma implementação compatível de maldições X/Open ou uma substituição para ncurses em sistemas existentes.
Notcurses descontinua a API X/Open Curses fornecida como parte da Especificação Única UNIX. Esta especificação está desatualizada e, por exemplo, não oferece suporte a funcionalidades de terminal, como cores de 24 bits não indexadas. Como tal, notcurses não substitui maldições. É menos portátil e definitivamente testado em menos hardware.
Sempre que possível, o notcurses utiliza a biblioteca terminfo fornecida com o ncurses, beneficiando-se enormemente de sua portabilidade.
Notcurses abre funcionalidades avançadas para interagir com usuários em estações de trabalho, telefones, laptops e tablets.
Por que usar esta biblioteca fora do padrão?
-
A segurança de threads e o uso eficiente em programas multithread têm sido uma consideração de design desde o início.
-
API mais bem formatada em comparação com X/Open:
-
Os identificadores exportados são prefixados para evitar colisões de namespace.
-
O arquivo objeto da biblioteca exporta um conjunto mínimo de caracteres. Onde for prático, o código estático é usado apenas para cabeçalhos de linha. Isso facilita a otimização do compilador e reduz o tempo de carregamento.
-
-
Todas as APIs suportam nativamente o conjunto de caracteres universais (Unicode). A API celular é baseada no conceito Cluster de grafema estendido do Unicode.
-
Recursos visuais incluindo imagens, fontes, vídeos, texto de alto contraste, sprites e áreas transparentes. Todas as APIs suportam nativamente cores de 24 bits, quantizadas conforme necessário pelo terminal.
-
Licença Apache2, ao contrário dramas em vários atos, que é a licença ncurses (esta última é resumida como uma “reformulação do MIT-X11”).
Desde a versão anterior significativa 1.1.0, um grande número de recursos foram adicionados. Principais mudanças:
-
Widget de leitura para inserir strings de formato livre vinculadas à leitura de strings
-
Um widget de subprocesso para gerar um subprocesso, gerenciá-lo e transmitir seus resultados de volta.
-
O Linux 5.3+ usa o novo mecanismo clone3+pidfd para gerenciar processos sem uma condição de corrida.
-
Widget Fdplane para transmitir um descritor de arquivo arbitrário para o plano (no qual o subprocesso é construído). Ambos permitem retornos de chamada para estilizar ou manipular o texto.
-
Rotação de planos e efeitos visuais. Carregando visualizações da memória. Blitting RGBA/BGRx aleatório.
-
O menu pode ser colocado em um (ou em ambos) planos superior e inferior.
-
Grandes melhorias no modo Direto.
-
Polyfills, gradientes e texto de alto contraste.
-
Adicionado Tetris como exemplo.
-
Os wrappers C++ de Marek Habersack agora têm a capacidade de lançar exceções (se necessário).
-
Python e Rust FFI atualizados e testados.
Demonstração em vídeo com comentários do autor
O livro “Hackeando o Planeta! com Notcourses" do autor
Fonte: linux.org.ru