package sarama | |
import ( | |
"github.com/klauspost/compress/zstd" | |
"sync" | |
) | |
var ( | |
zstdDec *zstd.Decoder | |
zstdEnc *zstd.Encoder | |
zstdEncOnce, zstdDecOnce sync.Once | |
) | |
func zstdDecompress(dst, src []byte) ([]byte, error) { | |
zstdDecOnce.Do(func() { | |
zstdDec, _ = zstd.NewReader(nil) | |
}) | |
return zstdDec.DecodeAll(src, dst) | |
} | |
func zstdCompress(dst, src []byte) ([]byte, error) { | |
zstdEncOnce.Do(func() { | |
zstdEnc, _ = zstd.NewWriter(nil, zstd.WithZeroFrames(true)) | |
}) | |
return zstdEnc.EncodeAll(src, dst), nil | |
} |