notcurses v1.4.1 foi lançado - uma biblioteca para interfaces de texto modernas


notcurses v1.4.1 foi lançado - uma biblioteca para interfaces de texto modernas

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

Adicionar um comentário