Skip to content

A122: zstd message compression - #562

Open
HosseinNejatiJavaremi wants to merge 2 commits into
grpc:masterfrom
HosseinNejatiJavaremi:a122-zstd
Open

A122: zstd message compression#562
HosseinNejatiJavaremi wants to merge 2 commits into
grpc:masterfrom
HosseinNejatiJavaremi:a122-zstd

Conversation

@HosseinNejatiJavaremi

@HosseinNejatiJavaremi HosseinNejatiJavaremi commented Aug 19, 2026

Copy link
Copy Markdown

A122: zstd message compression

gRFC for a first-class, cross-language zstd message codec (grpc-encoding: zstd). Per-message RFC 8878 frames. No dictionaries, skippable frames, or concatenated frames in the gRPC profile.

Blocked grpc/grpc#26460 and grpc/grpc#41813 pending this design.

Summary

  • Wire name zstd (IANA / RFC 8878); magic 0xFD2FB528; Dictionary_ID 0
  • Per-call grpc-encoding, per-message Compressed-Flag (existing model)
  • Encode opt-in; decode+advertise once non-experimental
  • C-core GRPC_COMPRESS_ZSTD; Python Compression.Zstd; Java optional artifact; Go encoding/zstd
  • C-core env var GRPC_EXPERIMENTAL_ZSTD_COMPRESSION; Java/Go use artifact/import as the flag
  • Not in scope: Brotli, Snappy, full-stream compression, C-core BYO compressor API, level remapping

C-core, Java, and Go language owners should review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant