encoding: Introduce CompressorV2 API
- Dominant language
- Go
- Stars
- 23.1k
- Forks
- 4.8k
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 43
Description
To address #7017, the following symbols are being updated in #9036:
1. [`Compressor` interface](https://github.com/grpc/grpc-go/blob/660208049b96ff6232e8c7212905b3e357b5bf42/encoding/encoding.go#L61)
2. [`RegisterCompressor`](https://github.com/grpc/grpc-go/blob/660208049b96ff6232e8c7212905b3e357b5bf42/encoding/encoding.go#L87)
3. [`GetCompressor`](https://github.com/grpc/grpc-go/blob/660208049b96ff6232e8c7212905b3e357b5bf42/encoding/encoding.go#L95)
4. [`SetSendCompressor`](https://github.com/grpc/grpc-go/blob/660208049b96ff6232e8c7212905b3e357b5bf42/server.go#L2147)
To provide a migration path for users, the changes will be made in the following order:
- [ ] Introduce V2 symbols and deprecate V1 (symbols with no suffix): #9036
- [ ] Wait for 1 release.
- [ ] Update the V1 symbols to match the V2 signatures. Mark the V2 symbols as deprecated.
- [ ] Wait for 1 release.
- [ ] Remove the V2 symbols.
Contributor guide
Research direction
Start by reading encoding/encoding.go and server.go at the linked Compressor, RegisterCompressor, GetCompressor, and SetSendCompressor symbols, then inspect issue #9036 to understand the first migration step. Confirm which V2 symbols and deprecations remain after that work; completion follows the staged migration checklist and release waits described here.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100