What it solves
A set containing only eight-digit identifiers does not need a general database.
How it works
18-digit number→2bit index→3fixed payload bit
Use it when
Check whether an eight-digit identifier exists
Add or remove identifiers with fixed storage
Persist a dense membership set in one known format
Quick Start
#include "num8.h"
num8_engine_t e; int exists=0;
num8_create("ids.num8",&e); num8_add_u32(&e,12345678);
num8_exists_u32(&e,12345678,&exists);
/* Expected: exists == 1. */Engineering evidence
- README defines the fixed file layout and records a dated Windows/MSVC benchmark
Known limits
- Stores membership only—no payload per number
- Always reserves the fixed 12.5 MB payload
- File numeric fields are little-endian