OpenQVD
A free, open, clean-room specification and implementation of the Qlik QVD binary file format.
OpenQVD is derived purely by binary analysis of a public corpus of
~1,100 .qvd files gathered from GitHub (see
QVD-Sources). It ships
no Qlik code or binaries, and reading or writing a .qvd file never
requires QlikView, Qlik Sense, or any other Qlik product to be
installed.
Why
QVD is Qlik's native columnar export format, but reading one outside
the Qlik ecosystem otherwise means round-tripping through a Qlik
install. OpenQVD lets the data science and data engineering community
read and write .qvd files directly from Rust, Python, or a
standalone CLI.
What you get
- A Rust reader and writer (
openqvdcrate) that parses 1,044 of 1,047 valid public corpus files and round-trips 1,093 of 1,093 semantically. - Python bindings (
openqvdon PyPI) built on PyArrow, with first-class Polars, Pandas, and DuckDB integration. - Projection and predicate pushdown: skip symbol-table decoding for unrequested columns, and filter before row decoding.
- A single-binary
openqvdCLI for quick inspection and format conversion. SPEC.md: a from-scratch specification of the XML header, symbol tables, and bit-packed row encoding, covered in Format.