#integer #binary #byte #integer-compression

varintrs

Go语言可变长度整数的Rust实现

3 个不稳定版本

0.2.1 2023年8月2日
0.2.0 2022年12月16日
0.1.0 2022年11月11日

#998数据库接口


furze 中使用

MIT 许可协议

15KB
410

varintrs

Go语言可变长度整数的Rust实现

注意:

这是Go语言可变长度整数的Rust实现。可变长度整数通常用于数据库存储,可以压缩整数数据存储并节省磁盘空间。

例如

use std::io::Cursor;
use varintrs::{Binary, ReadBytesVarExt};

let mut rdr = Cursor::new(vec![228, 211, 247, 161, 22]);
let (v, x) = rdr.read_vu64::<Binary>();
assert_eq!(5976746468, v);
assert_eq!(5, x);
use std::io::Cursor;
use varintrs::{Binary,WriteBytesVarExt};

let mut rdr = Cursor::new(vec![0u8; 7]);
rdr.write_vu64::<Binary>(88748464645454).unwrap();
assert!(rdr.get_ref().eq(&vec![206, 202, 214, 229, 245, 150, 20]));

无运行时依赖