What it solves
Small records on non-volatile media need deterministic encoding and recovery after interrupted writes.
How it works
1Record→2canonical encoding→3linear/ring media→4recovery iterator
Use it when
Keep a bounded diagnostic record ring
Append events to byte-writable media
Test a flash backend against a NOR simulator
Quick Start
#include "nvlog.h"
nvlog_ctx_t log; nvlog_ctx_init(&log);
if(nvlog_format(&log,&hal,storage_size)!=NVLOG_OK) return 1;
if(nvlog_append(&log,payload,sizeof payload)!=NVLOG_OK) return 1;
/* Expected: record can be iterated after mount/recovery. */Engineering evidence
- ESP32-S3 hardware validation is recorded in docs/HARDWARE_VALIDATION.md
- Host RAM/file backend and NOR simulator are included
Known limits
- Not a generic logging frontend
- Release object and packaged assets are documented as pending
- Media behavior must match the selected HAL contract