refactor: centralize k-mer config and introduce packed sequences

Centralize k-mer and minimizer configuration using a thread-safe global module, and replace manual bit-packing with a memory-efficient `PackedSeq` type. Refactor core sequence and k-mer types to use compile-time length enforcement and centralized hashing. Introduce a new De Bruijn graph implementation with compact node encoding and traversal iterators. Update I/O, partitioning, and builder modules to align with the new architecture, and add the `xxhash-rust` dependency.
This commit is contained in:
Eric Coissac
2026-05-08 06:34:24 +08:00
parent 602f414957
commit 8c17bf958b
37 changed files with 2641 additions and 2456 deletions
+5
View File
@@ -3,6 +3,11 @@ name = "obikseq"
version = "0.1.0"
edition = "2024"
[features]
# Replaces the OnceLock-based params with thread-local storage so that
# tests in dependent crates can call set_k / set_m freely without conflicts.
test-utils = []
[dependencies]
bitvec = "1"
serde = { version = "1.0", features = ["derive"] }