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  }