A plataforma Node.js 24.0.0 foi publicada.

Foi lançado o Node.js 24.0.0, uma plataforma para execução de aplicações de rede em JavaScript. O Node.js 24.0 é classificado como uma versão com suporte a longo prazo, mas este status será atribuído apenas em outubro, após a estabilização. O suporte para o Node.js 24.x será mantido até 30 de abril de 2028. O suporte para a versão anterior LTS do Node.js 22.x continuará até abril de 2027, e para a versão anterior 20.x até abril de 2026. O suporte para a versão LTS 18.x foi encerrado em 30 de abril de 2025, e o suporte para a versão intermediária Node.js 23.x será encerrado em 1 de junho de 2025.

Principais melhorias:

  • Na API AsyncLocalStorage, a classe AsyncContextFrame está habilitada por padrão e é marcada como estável. AsyncContextFrame implementa um mecanismo mais eficiente para rastreamento do contexto assíncrono, permitindo um aumento significativo de desempenho.
  • A API URLPattern agora está disponível como um objeto global, que pode ser usado sem a necessidade de importação explícita. O URLPattern oferece recursos para verificar se um URL corresponde a um determinado padrão, o que pode ser aplicado, por exemplo, na análise de links.
  • O mecanismo Permission Model foi melhorado e estabilizado, permitindo restringir o acesso a determinados recursos durante a execução (por exemplo, pode-se proibir a criação de processos filhos, limitar o acesso para gravação ou leitura a partes específicas do sistema de arquivos, desativar complementos). Em vez da flag experimental "--experimental-permission" para ativar o Permission Model, agora pode-se usar a flag "--permission".
  • As funcionalidades do módulo node:test (test_runner), destinado à criação e execução de testes em JavaScript, que retornam resultados no formato TAP (Test Anything Protocol), foram expandida. O módulo agora aguarda automaticamente a conclusão de testes aninhados sem a necessidade de usar await.
  • O cliente HTTP undici foi atualizado para a versão 7.x, que melhora o desempenho e adiciona suporte a novas funcionalidades do HTTP.
  • O mecanismo V8 foi atualizado para a versão 13.6, que é aplicada no Chromium 136. Novas funcionalidades em comparação com a versão anterior do Node.js incluem suporte a arrays tipados Float16Array, gerenciamento manual de recursos, o método RegExp.escape (escape de strings para RegExp), ponteiros de 64 bits (Memory64) no WebAssembly, e o método Error.isError.
  • O gerenciador de pacotes NPM foi atualizado para a versão 11.
  • O suporte ao compilador MSVC foi encerrado. Para compilar na plataforma Windows, é necessário usar o ClangCL.

A plataforma Node.js pode ser utilizada tanto para suporte do lado do servidor de aplicações web quanto para criar programas de rede comuns tanto do lado do cliente quanto do servidor. Para expandir a funcionalidade das aplicações Node.js, foi preparada uma grande coleção de módulos, onde é possível encontrar módulos com implementações servidores e clientes HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, módulos para integração com diversos frameworks web, manipuladores WebSocket e Ajax, conectores a bancos de dados (MySQL, PostgreSQL, SQLite, MongoDB), motores de template, motores CSS, implementações de algoritmos de criptografia e sistemas de autorização (OAuth), parsers XML.

Para lidar com um grande número de solicitações paralelas, o Node.js utiliza um modelo assíncrono de execução de código, baseado no processamento de eventos em modo não bloqueante e na definição de manipuladores de callback. Métodos como epoll, kqueue, /dev/poll e select são suportados como maneiras de multiplexar conexões. A biblioteca libuv, que é uma camada superior em relação à libev em sistemas Unix e ao IOCP no Windows, é usada para multiplexação de conexões. Para criar um pool de threads, é utilizada a biblioteca libeio, e para executar consultas DNS de forma não bloqueante, o c-ares está integrado. Todas as chamadas de sistema que causam bloqueio são executadas dentro do pool de threads e então, assim como os manipuladores de sinal, transmitem o resultado de seu trabalho por meio de um canal anônimo (pipe).

A execução de código JavaScript é garantida através do uso do motor V8 desenvolvido pela Google (além disso, a Microsoft desenvolve uma versão do Node.js com o motor Chakra-Core). Essencialmente, o Node.js é semelhante a frameworks como Perl AnyEvent, Ruby Event Machine, Python Twisted e a implementação de eventos em Tcl, mas o loop de eventos no Node.js é oculto do desenvolvedor e se assemelha ao processamento de eventos em uma aplicação web que roda no navegador.

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