Why field numbers matter
Binary encoding uses field numbers, not names — so renaming a field is safe, but changing or reusing a number breaks compatibility.
Rules:
- Must be unique within a message
- Never change or reuse a deleted field number
- Mark deleted numbers as
reservedto prevent accidental reuse
reserved 3;
reserved "member_count";Encoding size by range
| Range | Encoding size | Use for |
|---|---|---|
| 1–15 | 1 byte | Frequent / important fields |
| 16–2047 | 2 bytes | Less frequent fields |
| 2048+ | 3+ bytes | Rarely used fields |
Put your most-used fields in 1–15 to minimise payload size.
See also
- codegen-multi-service — go_package, submodules, dependency chain
- json-tag — controlling JSON field names and omission