Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 99 lines (83 sloc) 4.291 kB
eb155ea @ry Bump version to v0.4.0
ry authored
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <style type="text/css">
5 ul {
6 padding: 0;
7 margin: 0;
8 }
9 </style>
21e3b66 @stagas Added favicon.ico
stagas authored
10 <link type="image/x-icon" rel="icon" href="favicon.ico" />
11 <link type="image/x-icon" rel="shortcut icon" href="favicon.ico" />
eb155ea @ry Bump version to v0.4.0
ry authored
12 <link type="text/css" rel="stylesheet" href="pipe.css" />
13 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
14 <title>node v0.4 announcement</title>
15 </head>
16 <body>
17 <h2>Second Stable Branch of Node released</h2>
18
19 <p>
20 <a
21 href="https://github.com/ry/node/wiki/Migrating-from-v0.2-to-v0.3">Wiki
22 page detailing API changes between v0.4 and v0.2</a>
23
24 <p>
25 Major changes since v0.2:
26
27 <ul>
28 <li> Major overhaul of TLS/SSL system. Previously the binding to
29 OpenSSL was heavily interwoven into the socket code. This binding was
30 reworked to present each connection as a pair of "streams" instead: a
31 duplex encrypted stream and a duplex cleartext stream. The encrypted
32 stream is piped to a raw TCP socket using the general purpose
33 <code>Stream.prototype.pipe()</code> method. Functionality was
34 enhanced and API simplified.
35
839fb8e @ry typos
ry authored
36 <li>Simpler HTTP client API with connection pools.
5ceefec @ry Add http client to v0.4 announcement
ry authored
37
eb155ea @ry Bump version to v0.4.0
ry authored
38 <li> Cheaper <code>Buffer</code> allocation. Node uses
39 <code>Buffer</code> objects in many places - it was noticed that they
40 were relatively slow to allocate and difficult to garbage collect. The
41 implementation changed to use pure javascript objects instead of
42 an <code>ObjectWrap</code> which improved performance.
43
44 <li> With a good amount of experience now, some modifications to the
45 module loading system were made to better support package managers.
46 In particular, NPM was forced to resort to deep symlinks and "shim"
47 modules to work around missing features in <code>require()</code>. The main
48 changes are:
49 <ol>
50 <li><code>require()</code> calls realpath. That is,
51 it resolves symbolic links. This allows symlinked modules to make
52 relative requires.
53
54 <li><code>require()</code> now has a primitive understanding of
55 <code>package.json</code>. It looks for the <code>main</code>
56 script. This allows <code>require()</code> to work on package
57 directories directly.
58
59 <li>A specially named directory, <code>node_modules/</code>, is
60 searched in the current directory for any modules. This will
61 hopefully encourage programmers to bundle modules rather than
62 rely on a global namespace.
63 </ol>
64 Read more about these features in <a
65 href="https://github.com/ry/node/blob/01a864a29d64119054401784cd9255c3a813bdbc/doc/api/modules.markdown">the
66 module documentation</a>.
67
68 <li> A half-complete but good start a native windows build with MinGW
69 is underway by Bert Builder. Build instructions can be found <a
70 href="https://github.com/ry/node/wiki/Building-node.js-on-mingw">on
71 the wiki</a>.
72
73 <li> Node upgraded to the latest version of V8, <code>v3.1.2</code>.
74 This includes much work including V8's new compilation infrastructure
75 and a GDB plugin on Linux.
76 Read <a
77 href="https://github.com/ry/node/blob/583f2e599962f2664dbaafa0ae98a8d6c1242441/deps/v8/ChangeLog">the
78 full V8 ChangeLog</a>.
79
80 <li>A new built-in client for V8's debugger was added to Node. It is
81 still very primitive but usable for simple task. There is a <a
82 href="http://vimeo.com/19465332">small introduction video</a> and
83 some <a
84 href="https://github.com/ry/node/blob/01a864a29d64119054401784cd9255c3a813bdbc/doc/api/debugger.markdown">documentation</a>.
85
86 <li>An <code>os</code> module was added by Brian White which exposes
87 a lot of basic but useful system information: <code>os.cpus(),
88 os.freemem(), os.totalmem(), os.loadavg()</code>
89
90 <li> And, of course, many of bug fixes. See the
91 <a
92 href="https://github.com/ry/node/blob/01a864a29d64119054401784cd9255c3a813bdbc/ChangeLog">full
93 changelog</a>.
94
95 </ul>
96
97 </body>
98 </html>
Something went wrong with that request. Please try again.