|
|
@@ -0,0 +1,28 @@
|
|
|
+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)
|
|
|
+ })
|
|
|
+ return zstdEnc.EncodeAll(src, dst), nil
|
|
|
+}
|