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 decoder translates bytes into strings.
The string encoder takes an optional parameter serializer.