You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fast on large files: memory-mapped I/O, lazy block-level
decompression with caching, and typed columnar decoding (no per-sample
boxing). Channels decode in parallel.
Typed signals: samples come back as []float64, []int64, []uint64, []string or [][]byte — never []interface{}.
Streaming: read whole channels, sample windows, or iterate chunk by
chunk for progressive loading.
Robust: no panics on malformed files (fuzz-tested); errors carry the
block type and file offset.
Writes MDF files too: a streaming writer for data loggers (bounded
memory, crash-safe unfinalized layout, Flush() durability points) and
a batch column API for exports, with optional DZ compression.
Decodes CAN bus logs: point it at a .dbc (or use the one embedded
in the log) and get physical signals instead of raw frame bytes.
Sample reductions: reads precomputed min/mean/max aggregates, so a
viewer can draw a multi-million-sample signal from a few hundred
records.
Supports sorted and unsorted files, compressed data (DZ deflate +
transposition, inflated in parallel), data lists (DL/HL), MDF 4.2
column storage (LD/DV/DI), variable-length data (VLSD/SD),
invalidation bits, non-byte-aligned integer channels, all three
channel-array (CA) storage types, the channel hierarchy (CH) tree,
unfinalized logger files (standard finalization steps applied in
memory), and the full set of conversion rules (linear, rational,
algebraic formulas, value/range tables, text tables).