Skip to content

Releases: ratal/mdfr

More writing features and bug fixes

03 Apr 06:56
51f04d2

Choose a tag to compare

New Features

  • MDF4 writing: CA block, CH block, DS/CL and CV/CU compositions, SR blocks, and Data Stream channels
  • Unfinalised MDF4 file reading
  • Channel Variants and Union array parsing
  • Frequency sync channel type support
  • Data stream mode for large files
  • Schema-based typed metadata (MdComment) for HD, FH, CN, CG, CC, SI, EV, AT, CH, DG blocks
  • Python: PyErr exposed for conversion into Python exceptions

Bug Fixes

  • Fixed VLSD reading regression
  • Fixed value range conversion not matching MDF spec
  • Fixed DL/HL/DZ block handling for VLSC channels
  • Fixed UTF-16 wrong endianness
  • Fixed half-float (f16) reading
  • Fixed critical safety issues in the C API

Performance

  • ~28% faster read on simple files
  • Optimised performance for files with many channels
  • Optimised VLSC sorted/unsorted data parsing
  • Optimised CV and CU channel handling

Refactoring

  • Split mdfinfo4 into per-block-type sub-modules
  • Endianness representation made less ambiguous
  • Replaced expect()/unwrap() calls with proper error propagation
  • ChannelData::Display made fault-tolerant (logs errors instead of panicking)

Testing & CI

  • Added tests for BigEndian channels (via LD blocks), Complex32, and ArrayDFloat64
  • Increased overall test coverage
  • Switched CI from nightly to stable Rust toolchain
  • Added more Python version targets for wheel generation
  • Updated all Cargo dependencies

Further MDF 4.3 implementations

16 Feb 00:46
90260b9

Choose a tag to compare

Added reading:

  • Event signals
  • Data Description (partial as relying on external description)
  • Data Stream
  • Nested dynamic data composition
  • Compressed embedded attachments
  • Sample Reduction

Added writing

  • Events
  • Attachments
  • VLSD/VLSC
  • File History
  • Source Information
  • Channel Arrrays
  • Channel History
  • Guard Block

Enhanced testing and added block by block type specific metadata parsing (inline with schema)

Refactored code into several files as it was becoming really too big for mdf4.x

MDF 4.3 changes introduction

25 Jan 12:06

Choose a tag to compare

Added MDF v4.3 main new features:

  • Variable Length signal data with Size Channel along with new VDBlock and GDBlock
  • Dynamic data with Data Stream block and related Channel List, Channel Variant and Channel Union -> SOMEIP or DDS raw data should be readable
  • New compression algorithms supported: ZStd and LZ4 in both Attachment and DZBlock
  • Unicode with BOM support

hdf5 export feature

08 May 16:46
da3b6e0

Choose a tag to compare

What's Changed

Full Changelog: 0.6.1...0.6.2

Mdf3 conversion bug fix

25 Apr 21:19
f893cb3

Choose a tag to compare

Fixed bug for value to text conversion
Improved debugging display of ChannelData, parquet export testing

Arrow-rs replacing Arrow2

17 Apr 06:48
f48c2d1

Choose a tag to compare

  • Replaced arrow2 by arrow-rs as arrow2 is an archived project. Created dedicated tensor and complex structs around arrow to better align with mdf specifics.
  • refactored parquet export
  • added get_channel_dtype()
  • added features management by cargo (polars, numpy and parquet)

Arrow2 in ChannelData

06 Feb 21:54
1ab8973

Choose a tag to compare

Arrow2 in ChannelData Pre-release
Pre-release

Switched from ndarray to arrow2 to store channel data in memory, removing conversion and allowing direct memory access with C API or other tools like polars. Gained parsing 40% performance on typical mdf files.
Added more anyhow contexts in order to improve troubleshooting errors