From 197e705f4f06aec4bebbc6e2226feea87a3128c0 Mon Sep 17 00:00:00 2001 From: jb-abbadie Date: Tue, 4 Oct 2022 15:12:01 +0200 Subject: [PATCH] Move from github.com/DataDog/zstd to github.com/klauspost/compress/zstd This allow us to have a pure Go package which is much easier to package on different OS/Architectures --- chdecompressor/decompressor.go | 6 ++++-- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/chdecompressor/decompressor.go b/chdecompressor/decompressor.go index bf908241..41d16d11 100644 --- a/chdecompressor/decompressor.go +++ b/chdecompressor/decompressor.go @@ -5,7 +5,7 @@ import ( "fmt" "io" - "github.com/DataDog/zstd" + "github.com/klauspost/compress/zstd" "github.com/pierrec/lz4" ) @@ -75,6 +75,7 @@ func (r *Reader) readNextBlock() error { // Decompress block r.data = make([]byte, decompressedSize) + var decoder, _ = zstd.NewReader(nil) switch compressionType { case noneType: r.data = block @@ -83,7 +84,8 @@ func (r *Reader) readNextBlock() error { return fmt.Errorf("cannot decompress lz4 block: %w", err) } case zstdType: - r.data, err = zstd.Decompress(r.data, block) + r.data = r.data[:0] // Wipe the slice but keep allocated memory + r.data, err = decoder.DecodeAll(block, r.data) if err != nil { return fmt.Errorf("cannot decompress zstd block: %w", err) } diff --git a/go.mod b/go.mod index 232a85d5..512e0c02 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,10 @@ module github.com/contentsquare/chproxy go 1.17 require ( - github.com/DataDog/zstd v1.5.0 github.com/alicebob/miniredis/v2 v2.21.0 github.com/go-redis/redis/v8 v8.11.4 github.com/google/go-cmp v0.5.7 + github.com/klauspost/compress v1.15.11 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/pierrec/lz4 v2.4.0+incompatible github.com/prometheus/client_golang v1.3.0 diff --git a/go.sum b/go.sum index da06f01f..8dcbc4fe 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -github.com/DataDog/zstd v1.5.0 h1:+K/VEwIAaPcHiMtQvpLD4lqW7f0Gk3xdYZmI1hD+CXo= -github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -61,6 +59,8 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= +github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=