Additional projects

nvlog

Small records on non-volatile media need deterministic encoding and recovery after interrupted writes.

A C99 linear or ring record buffer binds to a caller HAL and exposes format, mount, append and iteration flows.

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

What it solves

Small records on non-volatile media need deterministic encoding and recovery after interrupted writes.

How it works

1Record2canonical encoding3linear/ring media4recovery 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