2个版本
0.4.1 | 2023年10月5日 |
---|---|
0.4.0 | 2022年11月16日 |
#172 in 生物学
每月115次下载
用于 bfield
41KB
845 行
mmap-bitvec
mmap-bitvec
是一个用于处理内存映射文件支持的位向量的库。它包含了一个基于此类位向量的简单布隆过滤器。
示例
使用内存映射位向量
// Build an in-memory bit-vector with a capacity of 128 bits.
use mmap_bitvec::{MmapBitVec, BitVector};
let mut bitvec = MmapBitVec::from_memory(128).unwrap();
bitvec.set(2, true);
assert!(bitvec.get(2));
assert_eq!(bitvec.get_range(0..8), 0b00100000);
// Write the bit-vector to disk, passing in `None` where an optional magic bytes arg can be set
let dir = tempfile::tempdir().unwrap();
bitvec.save_to_disk(dir.path().join("test"), None, &[])
.unwrap();
let f = MmapBitVec::open(dir.path().join("test"), None, false).unwrap();
assert_eq!(f.get(2), true);
使用布隆过滤器
use mmap_bitvec::{BloomFilter};
// Create a Bloom filter with a capacity of 100 bits that uses 2 hash functions on each insert.
let mut filter = BloomFilter::new(Some("./test.bloom"), 100, 2).unwrap();
let (a, b) = (1, 2);
assert!(!filter.contains(a));
assert!(!filter.contains(b));
filter.insert(b);
assert!(!filter.contains(a));
assert!(filter.contains(b));
许可证
本项目采用 MIT许可证。
依赖项
~180KB