You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-zero/core/codec/gzip.go

34 lines
434 B
Go

4 years ago
package codec
import (
"bytes"
"compress/gzip"
"io"
)
func Gzip(bs []byte) []byte {
var b bytes.Buffer
w := gzip.NewWriter(&b)
w.Write(bs)
w.Close()
return b.Bytes()
}
func Gunzip(bs []byte) ([]byte, error) {
r, err := gzip.NewReader(bytes.NewBuffer(bs))
if err != nil {
return nil, err
}
defer r.Close()
var c bytes.Buffer
_, err = io.Copy(&c, r)
if err != nil {
return nil, err
}
return c.Bytes(), nil
}