又一份对比数据,原始 json 640K / pb 182K、压缩后 json 62K / pb 60K

-rw-r--r--+ 1 zhengkai zhengkai 640K Jan 11 12:00 list.json
-rw-------+ 1 zhengkai zhengkai  62K Jan 11 12:00 list.json.br
-rw-------+ 1 zhengkai zhengkai  73K Jan 11 12:00 list.json.gz
-rw-r--r--+ 1 zhengkai zhengkai 182K Jan 11 12:00 list.pb
-rw-------+ 1 zhengkai zhengkai  60K Jan 11 12:00 list.pb.br
-rw-------+ 1 zhengkai zhengkai  67K Jan 11 12:00 list.pb.gz
message Item {
	uint32 id = 1;
	Label.Enum type = 2;
	repeated Label.Enum label = 3;
	repeated uint32 category = 4;
}

message ItemList {
	repeated Item item = 1;
}

其实我以前也是这种观点,protobuf 是为了写代码容易、作为有“法律”效力的文档而减少沟通时出错,而不是为了那点性能

不过我还是没想过 brotli 能把字符串描述的数字压缩到接近 varint 的水平,这真的很让我吃惊