todo: update index to use byte offsets update reading reads a byte offset update writing to not write a newline completely disable compaction.