- PVSM.RU - https://www.pvsm.ru -

Node v0.12.0

6 февраля вышла новая мажорная версия Node.js v0.12. Это был длительный и трудный процесс, не без потерь для NodeJS, в результате которого от основной ветки отделился io.js [1], но, тем не менее, список нововведений довольно внушительный. Давайте поглядим.

Streams 3

Как обещают разработчики, реализация потоков теперь работает так, как это и ожидается. Причем самое главное, что старые API, введенные в v0.10, не поменялись.

Добавлен механизм cork/uncork для приложений, которые несколько раз синхронно пишут в поток. .cork() включает буферизацию для всех записей в поток, .uncork() же сбрасывает весь буфер.

HTTP

Параметр maxSockets больше не ограничен 5. По умолчанию он установлен в Infinity. Так что теперь разработчик, или операционная система, могут решать, сколько одновременных соединений может поддерживать приложение.

Также изменено поведение KeepAlive соединений. Теперь они будут оставаться открытыми до тех пор, пока не истечет их время жизни (timeout) или удаленный хоcт не разорвет соединение. Таким образом, перестанут работать запросы для продления времени жизни сокета и библиотеки, использующей эту механику.

Cluster

Добавлен round robin режим работы. Он теперь будет работать по-умолчанию. В этом режиме мастер будет принимать новые соединения и распределять их по worker-процессам.

child_process

Добавлены методы spawnSync/execSync для синхронного порождения дочернего процесса. По-моему очень удобная функция для написания каких-нибудь системных скриптов. Не нужно будет больше городить лапшу из callback'ов

Buffer

Обновлен механизм выделения памяти для буферов, разработчики обещают уменьшение потребляемой памяти и ускорение работы garbage collector'а c буферами.

Crypto

Добавлен метод crypto.setEngine(engine[, flags]), позволяющий использовать свои криптографические алгоритмы.
Добавлены методы для шифрования/де-шифрования публичным и приватными ключами (на данный момент поддерживается только RSA).

crypto.publicEncrypt(public_key, buffer)
crypto.privateDecrypt(private_key, buffer)

Добавлен класс Certificate.

VM

Очень интересный модуль для исполнения кода в песочнице. Тонкости и подробности можно поглядеть в документации [2].

Из печального. Этот релиз, как и ожидалось, вышел с версией V8 3.28.73. Это значит, что там нет новых фич из ES6 Harmony. Это, кстати, главная причина, по которой ребята из io.js [1] ушли делать свой форк.

Вообще, измнения я описал далеко не все, больше подробностей можно увидеть тут [3] и тут [4].

Как всегда, скачать новый Node.js можно на официальном сайте [5].

Спасибо за внимание.

Автор: ioncreature

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/82783

Ссылки в тексте:

[1] io.js: https://iojs.org/en/index.html

[2] документации: http://nodejs.org/api/vm.html

[3] тут: http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/

[4] тут: https://github.com/joyent/node/wiki/API-changes-between-v0.10-and-v0.12

[5] официальном сайте: http://nodejs.org/download/

[6] Источник: http://habrahabr.ru/post/250513/