6

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?

Domenic
  • 100,627
  • 39
  • 205
  • 257

3 Answers3

4

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

https://stackoverflow.com/a/4591335/424851

Community
  • 1
  • 1
henry.oswald
  • 5,046
  • 10
  • 45
  • 70
3

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).

0

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.

Idan Dagan
  • 6,637
  • 3
  • 26
  • 37