Additional projects

num8

A set containing only eight-digit identifiers does not need a general database.

A fixed 12,500,064-byte file uses one bit per possible value for constant-time membership operations.

DevelopmentMITC99
Last verified
Not audited against current README/docs
Platform scope
Portable C99; integration depends on caller-provided adapters

What it solves

A set containing only eight-digit identifiers does not need a general database.

How it works

18-digit number2bit index3fixed 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