Lançamento do uutils 0.3, uma alternativa ao GNU Coreutils escrita em Rust

Foi publicado o lançamento do projeto uutils coreutils 0.3.0 (Rust Coreutils), que desenvolve um equivalente ao pacote GNU Coreutils, escrito na linguagem Rust. O coreutils inclui mais de cem utilitários, como sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln e ls. O objetivo do projeto é criar uma implementação alternativa multiplataforma do Coreutils, capaz de funcionar em plataformas como Windows, Redox e Fuchsia.

Rust Coreutils está habilitado por padrão na versão Ubuntu 25.10 e é utilizado nas distribuições AerynOS (Serpent OS) e Apertis (desenvolvido pela Collabora). Ao contrário do GNU Coreutils, a implementação em Rust é distribuída sob a licença permissiva MIT, em vez da licença copyleft GPL. Adicionalmente, a mesma equipe de desenvolvedores está criando versões escritas em Rust para os conjuntos de utilitários util-linux, diffutils, findutils e procps, bem como para os programas sed e login.

Na nova versão do Rust Coreutils:

  • A performance de alguns utilitários foi significativamente aumentada, por exemplo, em comparação com o GNU Coreutils, o utilitário sort agora é 3.72 vezes mais rápido na ordenação normal e 1.46 vezes mais rápido na ordenação de números, base64 é 1.2 vezes mais rápido, expand é 1.8 vezes mais rápido, unexpand é 1.5 vezes mais rápido, nl é 1.57 vezes mais rápido, fold é 1.19 vezes mais rápido e 'uniq -c' é 1.13 vezes mais rápido.
  • Uma infraestrutura para monitoramento de desempenho foi criada com base na ferramenta CodSpeed. O sistema de integração contínua garante a detecção de regressões de desempenho. Testes de desempenho foram adicionados para 15 utilitários, incluindo sort, ls, uniq, du e base64.
  • Para os utilitários rm, du, chmod e chgrp, foi implementado um trabalho seguro com caminhos relativos de diretórios, utilizando as funções openat e unlinkat.
  • A segurança foi aumentada com o uso do pacote crate nix em vez de chamadas unsafe da libc.
  • A manuseio de erros foi aprimorado e se aproximou do tratamento de erros do GNU Coreutils em muitos utilitários.
  • A compatibilidade com Coreutils foi melhorada ao trabalhar com caminhos de arquivo que contém e não contém caracteres UTF8.
  • A compatibilidade com o conjunto de testes de referência do GNU Coreutils foi melhorada, com 532 testes concluídos com sucesso (na versão anterior, 538), 68 (52) testes falharam e 33 (27) testes foram ignorados. O nível de compatibilidade declarado é de 83.91% (era 87.06%). A diminuição no nível de compatibilidade é explicada pela adição de 16 novos testes ao conjunto de testes.
  • No utilitário date, foi implementada a opção '—reference=file' para mostrar o tempo de modificação do arquivo. Devido à ausência dessa opção no Ubuntu, o script de verificação automática de atualizações deixou de funcionar. No date, também foi consolidada a lógica de análise de tempo, melhorada a compatibilidade com o GNU date na implementação da opção '-d' e foi adicionado o sinalizador '—resolution' para exibir dados sobre a precisão da contagem do tempo.
  • As opções implementadas incluem: 'basenc —base58', 'id -a', 'ls -f', 'pinky —lookup', 'realpath -E', 'rm —progress'.
  • Recursos expandidos, problemas resolvidos e opções ausentes adicionadas para as utilidades base64, basenc, chgrp, chmod, cksum, cp, csplit, date, df, dirname, du, expand, expr, fold, hashsum, hostname, id, install, ln, ls, mv, nl, nohup, numfmt, od, pinky, ptx, realpath, rm, seq, sort, stat, stdbuf, stty, tail, timeout, touch, tsort, unexpand, uniq, uname, wc, who, uucore.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster