io.js 3.3.0

io.js is a server-side JavaScript runtime environment for event-driven applications. It's NPM-compatible and derived from NodeJS 0.12, but puts emphasis on a predictable release cycle. It utilizes the newer V8 JavaScript VM in version 4.2.

Tags javascript server event-driven programming-language npm v8 developers
License MITL
State initial

Recent Releases

3.3.003 Sep 2015 11:05 major feature: Notable changes: build: Add a `--link-module` option to `configure` that can be used to bundle additional JavaScript modules into a built binary (Bradley Meck). docs: Merge outstanding doc updates from joyent/node (James M Snell). http_parser: Significant performance improvement by having `http.Server` consume all initial data from its `net.Socket` and parsing directly without having to enter JavaScript. Any `'data'` listeners on the `net.Socket` will result in the data being "unconsumed" into JavaScript, thereby undoing any performance gains. (Fedor Indutny). libuv: Upgrade to 1.7.3, see ChangeLog for details (Saúl Ibarra Corretgé). V8: Upgrade to 4.4.63.30 (Michaël Zasso). Known : See https://github.com/nodejs/io.js/labels/confirmed-for complete and current list of known. Some uses of computed object shorthand properties are not handled correctly by the current version of V8. e.g. ` prop : val ` evaluates to ` `.. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal.. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion.. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - (SEMVER-MINOR) Introduce --link-module to./configure (Bradley Meck). - build: borked chmod call for release uploads (Rod Vagg). - build: set file permissions before uploading (Rod Vagg). - build: change staging directory on new server (Rod Vagg). - build: rename 'doc' directory to 'docs' for upload (Rod Vagg). - build: bad cherry-pick for vcbuild.bat build-release (Rod Vagg). - build: only define NODE_V8_OPTIONS if not empty (Evan Lucas). - build: make ci test addons in test/addons (Ben Noordhuis). - crypto: Use OPENSSL_cleanse to shred the data
3.2.030 Aug 2015 04:45 major bugfix: Notable changes: events: Added `EventEmitter#listenerCount(event)` as a replacement for `EventEmitter.listenerCount(emitter, event)`, which has now been marked as deprecated in the docs. (Sakthipriyan Vairamani). module: an error with preloaded modules when the current working directory doesn't exist. (Bradley Meck). node: Startup time is now about 5 faster when not passing V8 flags. (Evan Lucas). repl: Tab-completion now works better with arrays. (James M Snell). string_bytes: an unaligned write in the handling of UCS2 encoding. (Fedor Indutny). tls: Added a new `--tls-cipher-list` flag that can be used to override the built-in default cipher list. (James M Snell) _Note: it is suggested you use the built-in cipher list as it has been carefully selected to reflect current security best practices and risk mitigation._. Known issues: Some uses of computed object shorthand properties are not handled correctly by the current version of V8. e.g. ` prop : val ` evaluates to ` `.. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal.. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion.. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see.
3.1.025 Aug 2015 23:05 major bugfix: Notable changes: buffer: a couple large memory leaks (Ben Noordhuis). crypto: - a couple of minor memory leaks (Karl Skomski). - Signing now checks for OpenSSL errors (P.S.V.R). Note that this may expose previously hidden errors in user code. intl: Intl support using small-icu is now enabled by default in builds (Steven R. Loomis). - `String#normalize()` can now be used for unicode normalization. - The `Intl` object and various `String` and `Number` methods are present, but only support the English locale. - For support of all locales, node must be built with full-icu. tls: tls throughput being much lower after an incorrect merge (Fedor Indutny). tools: The v8 tick processor now comes bundled with node (Matt Loring). - This can be used by producing performance profiling output by running node with `--perf`, then running your appropriate platform's script on the output as found in tools/v8-prof. util: `util.inspect(obj)` now prints the constructor name of the object if there is one (Christopher Monsanto). Known : See https://github.com/nodejs/io.js/labels/confirmed-for complete and current list of known. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal.. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion.. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see.
3.0.005 Aug 2015 22:45 major feature: Notable changes: buffer: - Due to changes in V8, it has been necessary to reimplement `Buffer` on top of V8's `Uint8Array`. Every effort has been made to minimize the performance impact, however `Buffer` instantiation is measurably slower. Access operations may be faster in some circumstances but the exact performance profile and difference over previous versions will depend on how `Buffer` is used within applications. (Trevor Norris). - `Buffer` can now take `ArrayBuffer`s as a constructor argument (Trevor Norris). - When a single buffer is passed to `Buffer.concat()`, a new, copied `Buffer` object will be returned; previous behavior was to return the original `Buffer` object (Sakthipriyan Vairamani). build: PPC support has been added to core to allow compiling on pLinux BE and LE (AIX support coming soon) (Michael Dawson). dgram: If an error occurs within `socket.send()` and a callback has been provided, the error is only passed as the first argument to the callback and not emitted on the `socket` object; previous behavior was to do both (Matteo Collina Chris Dickinson). freelist: Deprecate the undocumented `freelist` core module (Sakthipriyan Vairamani). http: - Status codes now all use the official IANA names as per RFC7231, e.g. `http.STATUS_CODES 414 ` now returns `'URI Too Long'` rather than `'Request-URI Too Large'` (jomo). - Calling.getName() on an HTTP agent no longer returns a trailing colon, HTTPS agents will no longer return an extra colon near the middle of the string (Brendan Ashworth). node: - `NODE_MODULE_VERSION` has been bumped to `45` to reflect the break in ABI (Rod Vagg). - Introduce a new `process.release` object that contains a `name` property set to `'io.js'` and `sourceUrl`, `headersUrl` and `libUrl` (Windows only) properties containing URLs for the relevant resources; this is intended to be used by node-gyp (Rod Vagg). - The version of node-gyp bundled with io.js now downloads and uses a tarball of header files from iojs.org rathe
2.5.030 Jul 2015 01:45 minor: https: TLS sessions in Agent are reused. src: base64 decoding is now 50 faster. npm: Upgraded to v2.13.2, release notes can be found in . Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal.. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion.. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: process: resize stderr on SIGWINCH. benchmark: add remaining path benchmarks optimize. (SEMVER-MINOR) cluster: emit 'message' event on cluster master. crypto: fix legacy SNICallback. deps: make node-gyp work with io.js iojs/io.js#990. deps: upgrade to npm 2.13.2. deps: update V8 to 4.2.77.21. deps: make node-gyp work with io.js iojs/io.js#990. deps: upgrade to npm 2.13.1. doc: add GPG fingerprint for cjihrig. doc: note about custom inspect functions. doc: Replace util.debug with console.error. doc: add joaocgreis as a collaborator. doc: add TSC meeting minutes 2015-07-15. doc: recompile before testing core module changes. http: Check this.connection before using it. https: reuse TLS sessions in Agent. lib,test: add freelist deprecation and test. net: don't throw on immediately destroyed socket. node: remove bad fn call and check. repl: better empty line handling. repl: improving line continuation handling. repl: preventing REPL crash with inherited properties. repl: fixing `undefined` in invalid REPL keyword error. src: make base64 decoding 50 faster. test: do not use public IPs for timeout testing. test: skip IPv6 part before testing it. test: fix valgrind uninitialized memory warning. test: add -no_rand_screen
2.4.018 Jul 2015 13:45 minor: Notable changes: src: Added a new `--track-heap-objects` flag to track heap object allocations for heap snapshots (Bradley Meck). readline: Fixed a freeze that affected the repl if the keypress event handler threw (Alex Kocharin). npm: Upgraded to v2.13.0, release notes can be found in (Forrest L Norvell). Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal.. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion.. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - build: always use prefix=/ for tar-headers (Rod Vagg). - build: run-ci makefile rule (Alexis Campailla). - build: fix vcbuild merge issues (Alexis Campailla). - build: bail early if clean is invoked (Johan Bergström). - child_process: fix arguments comments (Roman Reiss). - deps: make node-gyp work with io.js (cjihrig) iojs/io.js#990. - deps: upgrade to npm 2.13.0 (Forrest L Norvell). - doc: add targos as a collaborator (Michaël Zasso). - doc: add thefourtheye as a collaborator (Sakthipriyan Vairamani). - doc: add TSC members from the combined project (Jeremiah Senkpiel). - doc: add TSC meeting minutes 2015-07-08 (Rod Vagg). - doc: add TSC meeting minutes 2015-07-01 (Rod Vagg). - doc: document fs.watchFile behaviour on ENOENT (Brendan Ashworth). - doc,test: empty strings in path module (Sakthipriyan Vairamani). - docs: link to more up-to-date v8 docs (Jeremiah Senkpiel). - fs: fix error on bad listener type (Brendan Ashworth). - path: assert path.join() arguments equally (Phillip Johnsen). - readline: fix freeze if `ke
2.3.411 Jul 2015 03:15 minor feature: Notable changes: openssl: Upgrade to 1.0.2d, fixes CVE-2015-1793 (Alternate Chains Certificate Forgery) (Shigeki Ohtsu). npm: Upgraded to v2.12.1, release notes can be found in and (Kat Marchán). Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal.. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion.. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - benchmark: Add some path benchmarks for #1778 (Nathan Woltman). - deps: update deps/openssl/conf/arch/*/opensslconf.h (Shigeki Ohtsu). - deps: upgrade openssl sources to 1.0.2d (Shigeki Ohtsu). - deps: make node-gyp work with io.js (cjihrig) iojs/io.js#990. - deps: upgrade to npm 2.12.1 (Kat Marchán). - doc: document current release procedure (Rod Vagg). - doc: update AUTHORS list (Rod Vagg). - path: refactor for performance and consistency (Nathan Woltman). - src: remove traceSyncIO property from process (Bradley Meck). - test: add missing crypto checks (Johan Bergström). - test: refactor test-repl-tab-complete (Sakthipriyan Vairamani). - *Revert "test: add test for missing `close`/`finish` event" (Fedor Indutny). - test: add test for missing `close`/`finish` event (Mark Plomer) iojs/io.js#1373. - tools: install gdbinit from v8 to PREFIX/share (Ali Ijaz Sheikh). - win,node-gyp: enable delay-load hook by default (Bert Belder) iojs/io.js#1433.
2.3.307 Jul 2015 03:15 security: Notable changes: deps: Fixed an out-of-band write in utf8 decoder. This is an important security update as it can be used to cause a denial of service attack. Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal.. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion.. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - deps: fix out-of-band write in utf8 decoder (Fedor Indutny). - doc: don't recommend domains for error handling (Benjamin Gruenbaum). - util: prepend '(node) ' to deprecation messages (Sakthipriyan Vairamani).
2.3.203 Jul 2015 08:45 minor feature: Notable changes: build: - Added support for compiling with Microsoft Visual C++ 2015. - Started building and distributing headers-only tarballs along with binaries. Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see and fix in. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - _stream_wrap: prevent use after free in TLS (Fedor Indutny). - benchmark: make concurrent requests configurable (Rich Trott). - benchmark: fix typo in README (Rich Trott). - buffer: prevent abort on bad proto (Trevor Norris). - buffer: optimize Buffer#toString() (Ben Noordhuis). - build: add tar-headers target for headers-only tar (Rod Vagg). - build: update build targets for io.js (Rod Vagg). - build: fix cherry-pick ooops, fix comment wording (Rod Vagg). - build: add MSVS 2015 support (Rod Vagg). - build: DTrace is enabled by default on darwin (Evan Lucas). - build,win: set env before generating projects (Alexis Campailla) joyent/node#20109. - crypto: fix VerifyCallback in case of verify error (Shigeki Ohtsu). - deps: copy all openssl header files to include dir (Shigeki Ohtsu). - doc: make the abbreviation 1MM clear (Ivan Yan). - doc: Added sample command to test iojs build (Jimmy Hsu). - doc: add TSC meeting minutes 2015-06-17 (Rod Vagg). - doc: clarify prerequisites in benchmark/README.md (Jeremiah Senkpiel). - doc: add TSC meeting minutes 2015-05-27 (Rod Vagg). - doc: archive io.js TC minutes (Rod Vagg). - doc: rename tc-meetings to tsc-meeti
2.3.124 Jun 2015 03:15 security minor major: Notable changes: module: The number of syscalls made during a `require()` have been significantly reduced again (see from v2.2.0 for previous work), which should lead to a performance improvement (Pierre Inglebert). npm: Upgrade to v2.11.2 (Rebecca Turner). Upgrade to v2.11.3 (Forrest L Norvell). zlib: A bug was discovered where the process would abort if the final part of a zlib decompression results in a buffer that would exceed the maximum length of `0x3fffffff` bytes ( 1GiB). This was likely to only occur during buffered decompression (rather than streaming). This is now fixed and will instead result in a thrown `RangeError` (Michaël Zasso). Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see and fix in. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - async-wrap: add provider id and object info cb (Trevor Norris). - buffer: fix cyclic dependency with util (Brendan Ashworth). - build: remove lint from test-ci on windows (Johan Bergström). - build: fix pkg-config output parsing in configure (Ben Noordhuis). - build: don't run lint from test-ci (Johan Bergström). - build: simplify execution of built binary (Johan Bergström). - crypto: add cert check to CNNIC Whitelist (Shigeki Ohtsu). - deps: make node-gyp work with io.js (cjihrig) iojs/io.js#990. - deps: upgrade to npm 2.11.3 (Forrest L Norvell). - deps: make node-gyp work with io.js (cjihrig) iojs/io.js#990. - deps: upgrade to npm 2.11.2 (Rebecca Turner). - doc: add security sect
2.3.014 Jun 2015 19:25 security minor documentation: Notable changes: libuv: Upgraded to 1.6.0 and 1.6.1, see full ChangeLog for details. (Saúl Ibarra Corretgé). Highlights include: - Fix TTY becoming blocked on OS X. - Fix UDP send callbacks to not to be synchronous. - Add `uv_os_homedir()` (exposed as `os.homedir()`, see below). npm: See full release notes for details. (Kat Marchán). Highlight: - Use GIT_SSH_COMMAND (available as of Git 2.3). openssl: - Upgrade to 1.0.2b and 1.0.2c, introduces DHE man-in-the-middle protection (Logjam) and fixes malformed ECParameters causing infinite loop (CVE-2015-1788). See the security advisory for full details. (Shigeki Ohtsu). - Support FIPS mode of OpenSSL, see README for instructions. (Fedor Indutny). os: Add `os.homedir()` method. (Colin Ihrig). smalloc: Deprecate whole module. (Vladimir Kurchatkin). Add new collaborators: - Alex Kocharin (@rlidwka). - Christopher Monsanto (@monsanto). - Ali Ijaz Sheikh (@ofrobots). - Oleg Elifantiev (@Olegas). - Domenic Denicola (@domenic). - Rich Trott (@Trott). Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see and fix in. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - cluster: wait on servers closing before disconnect (Oleg Elifantiev). - crypto: support FIPS mode of OpenSSL (Fedor Indutny). - (SEMVER-MINOR) crypto: add getCurves() to get supported ECs (Brian White). - crypto: update root certificates (Ben Noordhuis). - debugger: improve ESRCH error message (Jackson Tian). - deps: update UPGRADING.md doc to openssl-1.0.2c
2.2.106 Jun 2015 01:25 minor: Notable changes: http: Reverts the move of the `client` property of `IncomingMessage` to its prototype. Although undocumented, this property was used and assumed to be an "own property" in the wild, most notably by request which is used by npm. (Michaël Zasso). Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see and fix in. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - build: avoid passing empty strings to build flags (Johan Bergström). - doc: put SEMVER-MINOR on pre-load module.2.0 (Rod Vagg). - http: revert deprecation of client property (Michaël Zasso).
2.2.001 Jun 2015 14:05 minor documentation major: Notable changes: node: Speed-up `require()` by replacing usage of `fs.statSync()` and `fs.readFileSync()` with internal variants that are faster for this use-case and do not create as many objects for the garbage collector to clean up. The primary two benefits are: significant increase in application start-up time on typical applications and better start-up time for the debugger by eliminating almost all of the thousands of exception events. (Ben Noordhuis). node: Resolution of pre-load modules (`-r` or `--require`) now follows the standard `require()` rules rather than just resolving paths, so you can now pre-load modules in node_modules. (Ali Ijaz Sheikh). npm: Upgraded npm to v2.11.0. New hooks for `preversion`, `version`, and `postversion` lifecycle events, some SPDX-related license changes and license file inclusions. See the release notes for full details. Known issues: See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See. Surrogate pair in REPL can freeze terminal. `process.send()` is not synchronous as the docs suggest, a regression introduced in 1.0.2, see and fix in. Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion. `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see. Commits: - (SEMVER-MINOR) child_process: expose ChildProcess constructor (Evan Lucas). - *Revert "core: set PROVIDER type as Persistent class id" (Ben Noordhuis). - deps: make node-gyp work with io.js (cjihrig) iojs/io.js#990. - deps: upgrade npm to 2.11.0 (Forrest L Norvell) iojs/io.js#1829. - doc: `fs.*File()` also accept encoding strings (Rich Trott). - doc: add documentation for AtExit hook (Steve Sharp). - doc: clarify stability of fs.watch and relatives (Rich Trott). - doc: state url decodi
1.0.321 Jan 2015 05:45 minor bugfix: V8 upgrade from 3.31 to 4.1, this is not a major upgrade, the version number "4.1" signifies tracking towards Chrome 41. The 3.31 branch is now not tracking towards a stable release. Re-enable Windows XP / 2003 support. npm upgrade to 2.2.0. Improved FreeBSD support.
1.0.114 Jan 2015 20:39 cleanup: Rebuild due to stale build slave git reflogs for 1.0.0 release. Improve documentation consistency. Win, Msi: correct doc website link.