Add persistent compact integer vector and cache-line-optimized MPHF

Introduce the `obicompactvec` crate, featuring a two-tier, memory-mapped integer vector that uses a primary `u8` array with a sentinel for overflow dispatch and a sparse L1-resident index for fast random access. Implement builder and reader modules with zero-copy serialization and comprehensive test coverage. Update `obilayeredmap` to replace the default hash function with a cache-line-optimized `Mphf`, adding explicit bounds checking and duplicate-slot detection. Add documentation for both modules and update project configuration files accordingly.
This commit is contained in:
Eric Coissac
2026-05-13 06:24:43 +08:00
parent 84ed752b78
commit f2de79acde
14 changed files with 710 additions and 91 deletions
+9
View File
@@ -1655,6 +1655,14 @@ dependencies = [
"autocfg",
]
[[package]]
name = "obicompactvec"
version = "0.1.0"
dependencies = [
"memmap2",
"tempfile",
]
[[package]]
name = "obidebruinj"
version = "0.1.0"
@@ -1741,6 +1749,7 @@ dependencies = [
name = "obilayeredmap"
version = "0.1.0"
dependencies = [
"cacheline-ef",
"epserde 0.8.0",
"memmap2",
"obikseq",