package util import ( "bytes" "compress/gzip" "io/ioutil" ) func GzipEncode(in []byte) ([]byte, error) { var ( buffer bytes.Buffer out []byte err error ) writer, _ := gzip.NewWriterLevel(&buffer, gzip.BestSpeed) _, err = writer.Write(in) if err != nil { writer.Close() return out, err } err = writer.Close() if err != nil { return out, err } return buffer.Bytes(), nil } func GzipDecode(in []byte) ([]byte, error) { reader, err := gzip.NewReader(bytes.NewReader(in)) if err != nil { var out []byte return out, err } defer reader.Close() return ioutil.ReadAll(reader) }