31 lines
434 B
Go
31 lines
434 B
Go
package server
|
|
|
|
import (
|
|
"bytes"
|
|
"compress/gzip"
|
|
)
|
|
|
|
func Compress(data []byte) []byte {
|
|
var b bytes.Buffer
|
|
w := gzip.NewWriter(&b)
|
|
w.Write(data)
|
|
w.Close()
|
|
return b.Bytes()
|
|
}
|
|
|
|
func Decompress(data []byte) ([]byte, error) {
|
|
b := bytes.NewBuffer(data)
|
|
|
|
r, err := gzip.NewReader(b)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var w bytes.Buffer
|
|
_, err = w.ReadFrom(r)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return w.Bytes(), nil
|
|
}
|