I find that Go's I/O framework is one of its major strengths: The io.Reader and io.Writer abstractions make it easy to create composable programs It's a great example of how to use interfaces in your own programs One of my recent discoveries is io.Pipe(). Let's for example encode some JSON and send it as an HTTP POST body. You could use a bytes.Buffer to store the result of the encoding and then p