1 package src 2 3 import ( 4 "bytes" 5 "compress/gzip" 6 ) 7 8 func GzipEncode(in []byte) ([]byte, error) { 9 var ( 10 buffer bytes.Buffer 11 out []byte 12 err error 13 ) 14 writer := gzip.NewWriter(&buffer) 15 _, err = writer.Write(in) 16 if err != nil { 17 writer.Close() 18 return out, err 19 } 20 err = writer.Close() 21 if err != nil { 22 return out, err 23 } 24 25 return buffer.Bytes(), nil 26 } 27 28 func GzipDecode(in []byte) ([]byte, error) { 29 reader, err := gzip.NewReader(bytes.NewReader(in)) 30 if err != nil { 31 var out []byte 32 return out, err 33 } 34 defer reader.Close() 35 36 return ioutil.ReadAll(reader) 37 }