Encoding and decoding data
Another common aspect of IO in Go is the encoding of data, from one representation to another, as it is being streamed. The encoders and decoders of the standard library, found in the encoding package (https://golang.org/pkg/encoding/), use the io.Reader
and io.Writer
interfaces to leverage IO primitives as a way of streaming data during encoding and decoding.
Go supports several encoding formats for a variety of purposes including data conversion, data compaction, and data encryption. This chapter will focus on encoding and decoding data using the Gob and JSON format for data conversion. In Chapter 11, Writing Networked Programs, we will explore using encoders to convert data for client and server communication using remote procedure calls (RPC).
Binary encoding with gob
The gob
package (https://golang.org/pkg/encoding/gob) provides an encoding format that can be used to convert complex Go data types into binary. Gob is self-describing, meaning each encoded data...