Utility to buffer an unbounded amount of data in a pipeline

bufferiopipe

Is there a utility that I can stick in a pipeline to decouple read and write speeds?

$ producer | buf | consumer

Basically, I want a utility buf that reads its input as fast as possible, storing it in memory so consumer can take its sweet time while producer runs as fast as possible.

Best Answer

The pv (pipe viewer) utility can do this (with the -B option) and a lot more, including giving you progress reports.