Страничка Wiki, детально описывающая изменения в API между ветками 0.2.x и 0.4.x.
Важные изменения по сравнению с веткой 0.2.x:
Важные изменения по сравнению с веткой 0.2.x:
- Полное переписывание системы TLS/SSL. Раньше привязка к OpenSSL была глубоко переплетена с кодом сокетов. Эта привязка была переделана, чтобы вместо этого представлять каждое соединение парой «потоков»: дуплексным шифрованным потоком и дуплексным потоком обычного текста. Шифрованный поток связывается с простым сокетом TCP, используя метод общего назначения Stream.prototype.pipe(). Функциональность была расширена и API упрощён;
- Облегчённая аллокация буферов (Buffers). Node использует объекты класса Buffer во множестве мест — и было заметно, что они относительно медленно инстанцируются, и их было тяжело собирать во время сборки мусора. Реализация была изменена, чтобы использовать чистые объекты JavaScript вместо ObjectWrap, что увеличило производительность;
- Имея уже достаточный опыт на сегодня, мы провели некоторые модификации системы загрузки модулей для лучшей поддержки менеджеров пакетов. В частности, мы заставили NPM пересортировать симлинки большой вложенности и добавить «прокладку» для модулей, чтобы обойти ограничения в require(). Основные изменения:
- require() вызывает realpath. Следовательно, разрешаются символические ссылки. Это позволяет модулям-симлинкам выполнять относительные require;
- require() теперь имеет примитивное понимание package.json. Он ищет основной скрипт. Это позволяет require() работать напрямую с директориями пакетов;
- Специально именованная директория, node_modules/, ищется к текущем каталоге для подгрузки любых модулей. Это обрадует разработчиков, которые любят вкладывать пакеты в приложения, вместо того, чтобы зависеть от глобального пространста имён.
Читайте больше об этих возможностях в документации системы модулей. - Наполовину готовое, но неплохое начало для построения нативной Windows-сборки с использованием MinGW было предпринято Бером Билдером. Инструкции для сборки могут быть найдены в Wiki;
- Node обновился до последней версии V8, v3.1.2. Это включает в себя много работы, к примеру, новую инфраструктуру компиляции V8 и GDB-плагин под Linux. Прочтите полный список изменений V8;
- Новый встроенный клиент для отладчика V8 был добавлен в Node. Он всё еще очень примитивен, но полезен для простых задач. Здесь маленькое вводное видео и немного документации;
- Модуль os был добавлен Брайаном Уайтом, который предоставляет много базовой, но полезной информации о системе:
os.cpus(), os.freemem(), os.totalmem(), os.loadavg()
; - И, конечно, множество исправлений ошибок. Читайте полный список изменений.