This reads and writes the netidx archive format (as written by the “record” command in the tools). The archive format is intended to be a compact format for storing recordings of netidx data for long term storage and access. It uses memory mapped IO for performance and memory efficiency, and as such file size is limited to usize.

The goal of this structure are as follows in order of importance

This error will be raised if you try to write a record that is too large to represent in 31 bits to the file. Nothing will be written in that case, so you can just split the record and try again.