Pull to refresh

Node v0.12.0

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

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


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

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

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

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

Спасибо за внимание.
Tags: node.jsjavascript
Hubs: JavaScript Node.JS
Total votes 20: ↑19 and ↓1 +18
Comments 21
Comments Comments 21

Popular right now