Release da plataforma JavaScript para servidores Node.js 13.0

Disponível lançamento Node.js 13.0, plataformas para execução de aplicações de rede em JavaScript. A estabilização da versão anterior, Node.js 12.x, também foi concluída, e agora está na categoria de lançamentos com suporte a longo prazo, com atualizações liberadas por um período de 4 anos. O suporte para a versão LTS anterior, Node.js 10.0, irá até abril de 2021, enquanto a versão LTS anterior, 8.0, irá até janeiro de 2020.

Principais são:

  • O motor V8 foi atualizado para a versão 7.8, que incorpora novos métodos de otimização de desempenho, melhora na desestruturação de objetos, redução no consumo de memória e diminuição do tempo de preparação para execução do WebAssembly;
  • O suporte completo à internacionalização e Unicode é ativado por padrão com base nas bibliotecas ICU (International Components for Unicode), permitindo que os desenvolvedores escrevam código que suporta trabalho com diferentes idiomas e localidades. O módulo full-icu agora é instalado por padrão;
  • A API Workers Threads, permitindo permite criar ciclos de processamento de eventos (event loop) multithread. A implementação é baseada no módulo worker_threads, que permite executar código JavaScript em múltiplos threads paralelos. O suporte estável da API Workers Threads também foi retroportado para a versão LTS Node.js 12.x;
  • Os requisitos de plataforma foram elevados. Para compilar agora é necessário é necessário, pelo menos, macOS 10.11 (Xcode 10 é necessário), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • O suporte ao Python 3 foi aprimorado. Quando ambos, Python 2 e Python 3 estão instalados, ainda é utilizado o Python 2, mas agora há a possibilidade de compilar com apenas o Python 3 instalado;
  • A antiga implementação do parser HTTP ('--http-parser=legacy') foi removida. Chamadas e propriedades obsoletas, como FSWatcher.prototype.start(), ChildProcess._channel, e o método open() em objetos ReadStream e WriteStream, request.connection, response.connection, module.createRequireFromPath(), foram removidas ou consideradas obsoletas;
  • Imediatamente saiu seguido pela atualização 13.0.1, que corrige rapidamente diversos erros. Isso inclui a resolução de um problema que gerava um aviso no npm 6.12.0 sobre o uso de uma versão não suportada.

Vale lembrar que a plataforma Node.js pode ser utilizada tanto para suporte servidor em aplicações web quanto para criar programas de rede cliente e servidor convencionais. Para ampliar a funcionalidade das aplicações Node.js, foi preparada uma grande coleção de módulos, onde é possível encontrar módulos que implementam 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 criptográficos e sistemas de autenticação (OAuth), parsers XML.

Para garantir o processamento de um grande número de solicitações paralelas, o Node.js utiliza um modelo assíncrono de execução de código, baseado em um processamento de eventos em modo não bloqueante e na definição de manipuladores de callback. Os métodos suportados para multiplexação de conexões incluem epoll, kqueue, /dev/poll e select. Para a multiplexação de conexões, a biblioteca libuv, que é uma sobreposição sobre libev em sistemas Unix e sobre IOCP no Windows. Para criar um pool de threads, a biblioteca libeio, para realizar consultas DNS de forma não bloqueante, foi integrado c-ares. Todas as chamadas de sistema que causam bloqueio são realizadas dentro do pool de threads e, assim como os manipuladores de sinal, transmitem os resultados de suas operações de volta através de um canal anônimo (pipe). A execução de código JavaScript é garantida através do motor desenvolvido pela Google V8 (adicionalmente, a Microsoft desenvolve uma versão do Node.js com o motor Chakra-Core).

Essencialmente, o Node.js se assemelha aos frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted e a implementação Eventos em Tcl, mas o loop de eventos (event loop) em Node.js é oculto do desenvolvedor e se assemelha ao tratamento de eventos em uma aplicação web que roda no navegador. Ao escrever aplicações para node.js, é necessário considerar as particularidades da programação orientada a eventos; por exemplo, ao invés de executar "var result = db.query('select..');" com a espera pela conclusão e o subsequente tratamento dos resultados, em Node.js utiliza-se o princípio da execução assíncrona, ou seja, o código é transformado em "db.query('select..', function (result) {tratamento do resultado});", onde o controle passa instantaneamente para o próximo trecho de código, enquanto o resultado da consulta será tratado assim que os dados chegarem.

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