A decoder is a method of turning byte arrays into objects.
The default implementation does nothing, just returns the same byte array it takes in.
The default implementation is a no-op, it just returns the same array it takes in
An encoder is a method of turning objects into byte arrays.
The string encoder translates strings into bytes.
The string encoder takes an optional parameter serializer.