envoyproxy/envoy

Compression and decompression of gRPC through envoy proxy

Open

#41,893 opened on Nov 7, 2025

View on GitHub
 (3 comments) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/compressionarea/httpbughelp wantedno stalebot

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

What is the proper way to use Envoy to compress and decompress application/grpc?

Description I am trying to compress and decompress application/grpc through 2 envoy proxies. One handling the compression and one the decompression. However, I find through Wireshark that the Envoy Decompressor filter breaks the gRPC protocol by failing to set the END_STREAM flag on the final DATA frame, which causes the backend server to immediately send a TCP Reset.

A similar issue has been opened since 2019 but not resolved.

Given this issue, what is the most stable and reliable implementation of compression and decompression through Envoy? Is implementing a header mutation filter to remove the trailers the recommended solution?

Contributor guide