Skip to content

v0.5.0

Choose a tag to compare

@bintocher bintocher released this 30 Mar 08:47
· 15 commits to main since this release

Qlik Sense-compatible QVD output

QVD files generated by qvdrs are now binary-identical to Qlik Sense output (verified by MD5 hash comparison).

Changes

  • Symbol types: Int/Double instead of DualInt/DualDouble — 2× smaller symbol tables
  • NumberFormat: proper ASCII, INTEGER, REAL, DATE, TIMESTAMP types with correct formatting
  • Tags: $ascii, $text, $numeric, $integer, $timestamp, $date
  • BitWidth: reserves NULL sentinel (bits_needed(num_symbols + 1)) — Qlik convention
  • BitOffset: sorted by descending width for optimal packing
  • NULL representation: bias=0, NULL index = num_symbols (Qlik convention)
  • XML header: always includes Lineage, TableTags, ProfilingData elements
  • normalize(): new method to auto-fix any QvdTable for maximum Qlik compatibility
  • README: rewritten with comprehensive examples — DuckDB, Database→QVD, CSV/Excel→QVD

Python

pip install qvdrs==0.5.0

Rust

qvd = "0.5.0"