HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
nodejs
node-v0.x-archive
Web Development2010–2021
nodejs / node-v0.x-archive · Archived

node-v0.x-archive

Moved to https://github.com/nodejs/node

165Distinct people
182Mentions
1Explicit recommenders
34.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Moved to https://github.com/nodejs/node

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Although I have never built a "complete website" on the node.js stack, the time that I have spent developing on the platform has been very enjoyable and I've put a decent…

kersny used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 7:02:50 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year182 dated mentions

Observed mentions: 2010-06-11 19:12:27 UTC to 2021-04-14 02:35:01 UTC.

010203040502010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 16 mentions; 4 submissions, 12 comments20102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 48 mentions; 6 submissions, 42 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 28 mentions; 4 submissions, 24 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 27 mentions; 4 submissions, 23 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 31 mentions; 7 submissions, 24 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 20 mentions; 3 submissions, 17 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC16412
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC48642
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC28424
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC27423
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC31724
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC20317
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC505
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC110
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101

What Hacker News says

27 sources
The problem with apt-get for my use case is that most packages are outdated. If I need to install the latest version of a package I have to Google for instructions which is quite annoying. e.g. these are the steps to install Node.js: sudo apt-get update sudo apt-get install python-software-properties python g++ make sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs https://github.com/joyent/node/wiki/Installing-Node.js-via-p...
In Ask HN: Homebrew for Linux?
HTTP Pipelining is designed so a client can send multiple requests without waiting on a response and then the server sends all the responses in order. This is helpful on high latency links since it can combine numerous HTTP requests into fewer packets. The exploit is the client never stops to read and just writes requests nonstop. Meanwhile node's http.Server continually populates a response buffer which is never consumed. Node uses Stream[1] objects for reading/writing streams of data. The Stream object has a 'needsDrain' boolean which is set once its internal buffer surpasses the highWaterMark (defaults to 16kb). Subsequent writes will return false[2] and code should wait until the 'drain' event is emitted, signaling it's safe to write again[3]. The documentation even warns about this scenario: > However, writes will be buffered in memo
Read the rest
ry, so it is best not to do this excessively. Instead, wait for the drain event before writing more data. http.Server[4] uses a writeable stream to send responses to a client. Until this patch[5] it was ignoring the needsDrain/highWaterMark status and just writing to the stream. It fills up the buffer of the writeable stream, far beyond the high water mark and eventually runs out of memory. The patch resolves this by checking when needsDrain is set, then it stops writing and stops reading/parsing incoming data. It then waits until the 'drain' event is fired and then proceeds as normal. [1] http://nodejs.org/api/stream.html [2] http://nodejs.org/api/stream.html#stream_writable_write_chun... [3] http://nodejs.org/api/stream.html#stream_event_drain [4] http://nodejs.org/api/http.html#http_class_http_server [5] https://github.com/joyent/node/commit/085dd30e93da67362f044a...
In Node v0.10.21 Stable has critical security fix
Apparently, a trivial DoS vulnerability for any Node serving HTTP: https://groups.google.com/forum/#!msg/nodejs/NEbweYB0ei0/gWv... The odd thing about non-disclosure in an open source project is: I can diff the code bases before and after the fix. https://github.com/joyent/node/issues/6214 https://github.com/joyent/node/commit/085dd30e93da67362f044a... And, they have a test script: https://github.com/joyent/node/blob/085dd30e93da67362f044ad1...
In Node v0.10.21 Stable has critical security fix
Marek, Streams return `false` when a write will buffer past a configurable highWaterMark. The first hand-rolled `on('data', write)` pipe doesn't take this into consideration, and so yes, backpressure is not handled. `r.pipe(w)` does the right thing here. The single "extra read" that you're seeing is just filling up to that configureable highWaterMark, which is an intentional feature. In the real world, connections are often of extremely variable speeds. Consider sending data from a database on localhost to a client on a 3G or 4G network. The mobile connection is extremely bursty, but with a high max speed and periods of very high latency. The database connection is extremely steady, but with a slower max throughput because of hard disk latency. In that case, you absolutely don't want to miss a chance to send data to the mobile clie
Read the rest
nt during a burst, so the ideal default approach is for Node to smooth out those highs and lows by buffering a small amount of data in memory. We don't consider 64KB to be a large amount for most purposes, but as I mentioned, it is configurable. There is no way to pause the accept call, it's true. We've considered adding that feature, but no one has ever asked for it. Perhaps if you explain your use case in a github issue, we could do that. You can `server.close()` but that also unbinds, so clients get an ECONNREFUSED. Except in the cluster use-case, bind() and accept() are typically very tied to one another. It wouldn't be too hard to expose them separately, but like I said, no one's ever asked. If your complaint is that we haven't implemented a feature that no one's ever asked for, well, ok, that's just not how we do things, so maybe it's just a cultural difference in our approaches to creating software, I don't know. First, I believe most node.js programmers (including myself) don't understand Streams and just don't implement the Stream interfaces correctly. Ok, well, there's not really any excuse for that any more. They're thoroughly documented, base classes are provided, there are blogs and examples all over the place. Maybe start with http://api.nodejs.org/stream.html and if you have questions that aren't answered, complain about it at https://github.com/joyent/node/issues and mention `@isaacs` in the issue. It's literally a single method that you have to override to implement a well-behaved Readable, Writable, or Transform stream. But even if Streams were properly implemented everywhere the API suffers a race condition: it's possible to get plenty of data before the writer reacts and stops the reader. This is not true. The Writable stream object has a highWaterMark. Once that much data is buffered in memory, it starts returning `false` to its consumers. If you'd like to set that to 0, go right ahead. It will return `true` only if the data is immediately consumed by the underlying system. This doesn't happen "some time in the future". It happens at the first `write()` call that pushes the buffer over the high water mark. The example you describe is quite easy to simulate with setTimeout and the like. Perhaps you could post a bug if it behaves in a way that is problematic? I have a hard time sussing out what you're actually complaining about in this article. You certainly seem upset about some things node does, but I can't figure out exactly what's bugging you. Is it the inability to delay accept() calls? Is it callbacks? Is it streams? Is it non-blocking IO as such? Streams aren't really a "callback based" API as much as an event-based one, and actually, a more strictly callback-based stream API would be quite a bit easier to get right, in my opinion, with much less ceremony: http://lists.w3.org/Archives/Public/public-webapps/2013JulSe... A similar approach could be taken to the listen/accept stuff you write about. `server.accept(function(conn) {})` and then call accept() again when you're ready for another one. A convenience method can then be trivially layered on top of that to call accept() repeatedly: Server.prototype.listen = function(cb) { this.accept(function onconn(conn) { cb(conn); this.accept(onconn); }); }; I could be wrong, but I suspect, at the root, the cause of your distaste with Node is actually EventEmitters, rather than any of that other stuff you mention. And if so, I agree 100%. The "evented" part of Node is a mistake which can only be properly appreciated with the benefit of hindsight. It's too late to easily change now, of course, and so that's the design constraint we were faced with in building streams2 and streams3. But I think that platforms of the future should avoid this landmine. Fair warning: I'm going to be offline first for NodeConf and then for vacation, for the next several weeks, so this is is a bit of a hit-and-run comment. Feel free to reply to i@izs.me or post issues on the Node.js github page. I probably won't see replies here.
In It ain't about the callbacks, it's about the flow control
A few points to make: - I value software that keeps to the spec, because it's the spec that I (as a dev or non-dev) refer to. You never hear "NodeJS has HTTPish module", nor do you read documentation of that module's concepts and behaviour. Those are defined in the spec, and the __fill_in_with_any_language__ HTTP module just implements those definitions. - Optimizations, simplifications, corrections should be done in the spec, whenever the you find them at implementation-time. But until now there has not been ONE HTTP server that grasps and handles the HTTP specs in their whole. So then, I find it hilarious to read that about optimizations when neither of us have the whole picture. That said, I don't think it's Node.js to blame here (albeit they do have weird views of standards: https://github.com/joyent/node/issues/4850) but HTTP itself
Read the rest
because the spec's abstraction levels have been far away from the implementations' reach. HTTPs concepts are gorgeous but they are worth nil if implementation is "hard" and never done properly. Longer story at: http://andreineculau.github.io/hyperrest/2013-06-10-http-hel...
In Node.js incorrectly parses HTTP methods

Showing the 15 most recent of 27 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.