govarint:Golang的变长整数压缩库
戈瓦林特
该项目旨在为使用各种算法的 32 位和 64 位整数的高性能编码和解码提供一个简单的 API。
用法
每个整数编码算法都符合一个编码和解码接口。 接口还指定了无符号整数的大小,32 位或 64 位,下面将称为 XX。 创建编码器:
NewU32Base128Encoder(w io.Writer)
NewU64Base128Encoder(w io.Writer)
NewU32GroupVarintEncoder(w io.Writer)
对于编码器,仅有的两个命令是PutUXX和Close 。 当某些整数编码算法以倍数写入时,必须调用Close 。
var buf bytes.Buffer
enc := NewU32Base128Encoder(&buf)
enc.PutU32(117)
enc.PutU32(343)
enc.Close()
创建解码器:
NewU