dflog 0.7.1 — Rust dataflash log core (CLI + Python wheels)
Pre-release
Pre-release
·
2 commits
to rust/dflog-core
since this release
Rust rewrite of Mission Planner's ArduPilot dataflash (.bin) log parsing
(source in rust/ on the rust/dflog-core branch). Byte-for-byte parity with
the C# parser where it matters, and substantially faster where it counts.
Artifacts
dflog-cli-0.7.1-win_x64.zip— standalone Windows x64 CLI, no install
needed:info(summary),dump(numeric columns as CSV),convert(text
conversion, byte-identical to Mission Planner's bin-to-log output), and
parquet(one Parquet file per message type, with optional
--split-instancesfor per-sensor files likeIMU_0.parquet).dflog-0.7.1-linux_x64.tar.gz— Linux x86_64 CLI pluslibdflog_ffi.so
(the C ABI shared library the CLI and wheels are built on, ABI v5).
Requires glibc 2.34+ (Ubuntu 22.04+, Debian 12+, RHEL 9+); the only
shared-library dependencies are libc, libm and libgcc_s.dflog-0.7.1-cp39-abi3-win_amd64.whl— Python package, Windows x64.dflog-0.7.1-cp39-abi3-manylinux_2_34_x86_64.whl— Python package,
Linux x86_64.
One wheel per platform covers every CPython from 3.9 up (abi3), with numpy as
the only dependency: columnar reads to numpy arrays, message iteration,
units/multiplier metadata, GPS time base, and per-instance filtering
(columns(..., instance=0)). Both wheels are validated against the same test
suite on Python 3.12 and 3.14.
Highlights
- Columnar extraction ~30x faster than pymavlink's DFReader end to end
(248 MiB / 6.37M-record log: 3.99 s → 0.13 s for ATT columns); full
iteration ~5x, open ~18x. Values bit-identical, counts identical. convertoutput verified byte-identical toBinaryLog.ConvertBinover a
multi-vehicle corpus and a 260 MiB log, including the legacy float-rounding
quirks.- Corrupt/truncated logs parse exactly the way Mission Planner parses them
(resync behavior, silent skip of undecodable records), pinned by a golden
characterization suite and coverage-guided fuzzing (multi-hour soaks on the
scan/convert/columns/access surfaces, zero findings). - The same core ships inside this fork as
dflog_ffi.dll, used by LogBrowse,
MagCalib and the FFT views when "Fast native log parsing" is enabled.
macOS builds not provided yet. GPLv3, as part of the Mission Planner fork.