Прошедшие выходные могут похвастаться двумя релизами Node.js: очередной минорной версией в ветке v0.2.x и официальным релизом ветки v0.3.x.
И пусть разрабатываемая ветка всё ещё отмечена как «нестабильная», в ней ожидаются существенные улучшения производительности, переносимости и добавление новых возможностей, о которых стоит знать уже сейчас. Тем более, что эта версия уже вполне работоспособная.
Также в конце топика бонус в виде ссылок на репозитории пакетов Node.js v0.2.x и NPM (Node.js package manager).
Документация: nodejs.org/docs/v0.2.4/api.html
Документация: nodejs.org/docs/v0.3.0/api.html
Для тех, кто любит *nix ещё и за удобную работу с ПО за счёт пакетных менеджеров, у меня есть небольшое дополнение:
Я собрал на openSUSE BuildService пакеты для Node.js ветки v0.2.x и NPM (Node.js package manager). Пользуйтесь на здоровье ;-)
И пусть разрабатываемая ветка всё ещё отмечена как «нестабильная», в ней ожидаются существенные улучшения производительности, переносимости и добавление новых возможностей, о которых стоит знать уже сейчас. Тем более, что эта версия уже вполне работоспособная.
Также в конце топика бонус в виде ссылок на репозитории пакетов Node.js v0.2.x и NPM (Node.js package manager).
Изменения в версии 0.2.4:
- Добавлена опция --eval, позволяющая выполнять передаваемый в виде строки JavaScript код (аналог perl -e или php -r).
- Исправления в модуле работы с сетью:
- Добавлена возможность начинать запись в очередь до завершения соединения.
- В случае неудачной попытки закрытия соединения очередь записи теперь не очищается.
- Исправлен баг с частой проверкой освободившихся дескрипторов в случае достижения лимита соединений (Do not spin on accept() with EMFILE).
- Добавлена опция --max-stack-size для ограничения максимального размера стека V8 (V8 также сам по себе поддерживает опции для ограничения размера используемой движком памяти).
- Исправлены ошибки в функции child_process.exec(), связанные завершением порождённого процесса (теперь он происходит с помощью сигнала SIGTERM, а не SIGKILL).
- Исправлены ошибки некорректного освобождения ресурсов при завершении работы Node.
Документация: nodejs.org/docs/v0.2.4/api.html
Изменения в версии 0.3.0 (unstable):
- Все описанные выше исправления для версии 0.2.4.
- Множественные улучшения модуля readline.
- Исправлен баг с повреждением памяти при некорректном вызове конструкторов.
- Исправлена функция process.nextTick(), теперь исключения в функции обратного вызова не повлияют на её работу Node.
- Заново переписаны буферы, достигнуто значительно ускорение работы с ними.
- При компиляции модулей по умолчанию добавлены флаги -D_FILE_OFFSET_BITS=64 и -D_LARGEFILE_SOURCE.
- Упрощён разбор строки HTTP запросов.
- Добавлена поддержка HTTP 100 ответа сервера.
- Упрощена система модулей:
- Удалены методы require.async() и require.registerExtension(), добавлено свойство require.extensions[].
- Добавлено публичное API для require.resolve() и require.cache[].
- Изменёно форматирование запятых в выводе in sys.inspect(), добавлен вывод имён функций.
- Константы выделены из process в отдельный модуль require('constants').
- Исправлен разбор количества используемой памяти в Linux для программ с пробелами в имени.
- Модуль sys переименован в util.
- Исправлен баг с невозвращением неблокируещего статуса потоку stdio при прекращении программы по сигналам SIGTERM и SIGINT.
- Улучшено декодирование base64 строк с дополнительными символами(например пробелами и переводами строк).
- Добавлена возможность переопределять и добавлять команды в REPL.
- V8 обновлен до версии 2.5.1, Libev до версии 4.00, также обновлены libeio и http-parser.
- Другие исправления и улучшения в модулях crypto, fs, http и net.
Документация: nodejs.org/docs/v0.3.0/api.html
Для тех, кто любит *nix ещё и за удобную работу с ПО за счёт пакетных менеджеров, у меня есть небольшое дополнение:
Я собрал на openSUSE BuildService пакеты для Node.js ветки v0.2.x и NPM (Node.js package manager). Пользуйтесь на здоровье ;-)