Abstract
The io package offers efficient primitives and utilities to work with data and data streams. This talk highlights the core I/O interfaces and additional helpers from the standard library. We will see, when and how to implement these interfaces yourself and look at some existing implementations. The io package offers efficient primitives and utilities to work with data and data streams. This talk highlights the core I/O interfaces and additional helpers from the standard library. We will see, when and how to implement these interfaces yourself and look at some existing implementations. One Go proverb is: The bigger the interface, the weaker the abstraction. The io.Reader and io.Writer interfaces are examples of small interfaces, that are very powerful and versatile. They can be used for files, network connections, compression and more. Furthermore, they reflect the importance of composition, as implementations can be chained. Beside these interfaces, the additional I/O utilities can help to write idiomatic, beautiful Go.