io.Pipe создаёт связанную пару PipeReader и PipeWriter — что пишется в writer, можно прочитать из reader. Это синхронный механизм: запись блокируется пока данные не прочитаны, и наоборот. Используется когда нужно связать код, который пишет в Writer, с кодом, который читает из Reader — например, стримить JSON-кодирование прямо в HTTP-запрос.