gzip.go 434 B

123456789101112131415161718192021222324252627282930313233
  1. package codec
  2. import (
  3. "bytes"
  4. "compress/gzip"
  5. "io"
  6. )
  7. func Gzip(bs []byte) []byte {
  8. var b bytes.Buffer
  9. w := gzip.NewWriter(&b)
  10. w.Write(bs)
  11. w.Close()
  12. return b.Bytes()
  13. }
  14. func Gunzip(bs []byte) ([]byte, error) {
  15. r, err := gzip.NewReader(bytes.NewBuffer(bs))
  16. if err != nil {
  17. return nil, err
  18. }
  19. defer r.Close()
  20. var c bytes.Buffer
  21. _, err = io.Copy(&c, r)
  22. if err != nil {
  23. return nil, err
  24. }
  25. return c.Bytes(), nil
  26. }