The source code looks very similar: pump
, pipe
. Why would I use one instead of the other? Is one simply a better version of the other?
3 Answers
Stream.pipe is now the preferred method apparently since 0.3.x so try and use that when possible
sources:
https://groups.google.com/forum/?fromgroups#!topic/nodejs/FwdDQvAf4xM

- 1
- 1

- 5,304
- 13
- 51
- 73
There are two significant difference between the two. The first is that the util.pump
method can operate on two "stream-like" objects, while the Stream.prototype.pipe
assumes that they are stream objects. The second is because of that assumption, the pipe
can be chained ( streamA | streamB | streamC
) while the former can't (easily).
UPDATE: 28/04/2020
It's worth to say that pump
is only necessary for Node.js 8.x or earlier, as for Node.js 10.x or later version, pipeline is introduced to replace for pump
. This is a module method to pipe between streams forwarding errors and properly cleaning up and provide a callback when the pipeline is complete.

- 10,273
- 5
- 34
- 41