github.com/grafana/pyroscope@v1.18.0/pkg/api/connect/compression.go (about) 1 package connectapi 2 3 import ( 4 "io" 5 6 "connectrpc.com/connect" 7 "github.com/klauspost/compress/gzip" 8 ) 9 10 const ( 11 compressionGzip = "gzip" 12 ) 13 14 var ( 15 gzipPoolHandler = connect.WithCompression( 16 compressionGzip, 17 func() connect.Decompressor { return &gzip.Reader{} }, 18 func() connect.Compressor { return gzip.NewWriter(io.Discard) }, 19 ) 20 gzipPoolClient = connect.WithAcceptCompression( 21 compressionGzip, 22 func() connect.Decompressor { return &gzip.Reader{} }, 23 func() connect.Compressor { return gzip.NewWriter(io.Discard) }, 24 ) 25 ) 26 27 func WithGzipHandler() connect.HandlerOption { 28 return gzipPoolHandler 29 } 30 31 func WithGzipClient() connect.ClientOption { 32 return gzipPoolClient 33 }