GRPC Core  0.10.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Variables
compress_filter.h File Reference
#include "src/core/channel/channel_stack.h"

Go to the source code of this file.

Macros

#define GRPC_COMPRESS_REQUEST_ALGORITHM_KEY   "internal:grpc-encoding-request"
 

Variables

const grpc_channel_filter grpc_compress_filter
 Compression filter for outgoing data. More...
 

Macro Definition Documentation

#define GRPC_COMPRESS_REQUEST_ALGORITHM_KEY   "internal:grpc-encoding-request"

Variable Documentation

const grpc_channel_filter grpc_compress_filter

Compression filter for outgoing data.

See <grpc/compression.h> for the available compression settings.

Compression settings may come from:

  • Channel configuration, as established at channel creation time.
  • The metadata accompanying the outgoing data to be compressed. This is taken as a request only. We may choose not to honor it. The metadata key is given by GRPC_COMPRESS_REQUEST_ALGORITHM_KEY.

Compression can be disabled for concrete messages (for instance in order to prevent CRIME/BEAST type attacks) by having the GRPC_WRITE_NO_COMPRESS set in the BEGIN_MESSAGE flags.

The attempted compression mechanism is added to the resulting initial metadata under the'grpc-encoding' key.

If compression is actually performed, BEGIN_MESSAGE's flag is modified to incorporate GRPC_WRITE_INTERNAL_COMPRESS. Otherwise, and regardless of the aforementioned 'grpc-encoding' metadata value, data will pass through uncompressed.