Documentation ¶
Overview ¶
Package encoding defines the interface for the compressor and the functions to register and get the compossor. This package is EXPERIMENTAL.
Index ¶
Constants ¶
const Identity = "identity"
Identity specifies the optional encoding for uncompressed streams. It is intended for grpc internal use only.
Variables ¶
This section is empty.
Functions ¶
func RegisterCompressor ¶
func RegisterCompressor(c Compressor)
RegisterCompressor registers the compressor with gRPC by its name. It can be activated when sending an RPC via grpc.UseCompressor(). It will be automatically accessed when receiving a message based on the content coding header. Servers also use it to send a response with the same encoding as the request.
NOTE: this function must only be called during initialization time (i.e. in an init() function). If multiple Compressors are registered with the same name, the one registered last will take effect.
Types ¶
type Compressor ¶
type Compressor interface { // Compress writes the data written to wc to w after compressing it. If an error // occurs while initializing the compressor, that error is returned instead. Compress(w io.Writer) (io.WriteCloser, error) // Decompress reads data from r, decompresses it, and provides the uncompressed data // via the returned io.Reader. If an error occurs while initializing the decompressor, that error // is returned instead. Decompress(r io.Reader) (io.Reader, error) // Name is the name of the compression codec and is used to set the content coding header. Name() string }
Compressor is used for compressing and decompressing when sending or receiving messages.
func GetCompressor ¶
func GetCompressor(name string) Compressor
GetCompressor returns Compressor for the given compressor name.