package encoding

import "google.golang.org/grpc/encoding"

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.

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.

Source Files

encoding.go

Directories

PathSynopsis
encoding/gzipPackage gzip implements and registers the gzip compressor during the initialization.
Version
v1.8.0
Published
Nov 21, 2017
Platform
windows/amd64
Imports
1 packages
Last checked
31 minutes ago

Tools for package owners.