encoder.go
func NewEncoder(w io.Writer) Encoder {
	return versionOneEncoder{w, make([]byte, 9), bytes.NewBuffer(make([]byte, 0, 4096))}
}
func NewEncoder(w io.Writer) Encoder {
	return versionOneEncoder{w, make([]byte, 9), bytes.NewBuffer(make([]byte, 0, 4096))}
}
// NewEncoder creates a new encoder with the given io.Writer