Skip to main content

Crate openqvd

Crate openqvd 

Source
Expand description

OpenQVD: clean-room reader for Qlik QVD files.

Implements the specification in SPEC.md (Apache-2.0). Derived entirely from binary analysis of a public corpus; no existing QVD parsers have been consulted.

§Quick start

use openqvd::Qvd;

let qvd = Qvd::from_path("data.qvd").unwrap();
println!("table {:?} with {} rows", qvd.table_name(), qvd.num_rows());
for row in qvd.rows() {
    for (field, value) in qvd.fields().iter().zip(row) {
        println!("  {} = {:?}", field.name, value);
    }
}

The reader is strict: any deviation from the spec produces a QvdError rather than silent misinterpretation.

Structs§

CheckedRowIter
Checked iterator over decoded rows.
Column
A single column of logical values, ready to be written.
Dual
A single value in the Qlik “dual” sense: a machine number and the textual form that Qlik used to render it.
FieldHeader
Parsed representation of a <QvdFieldHeader> element.
NumberFormat
Parsed <NumberFormat> element. Every observed file contains the same six sub-elements. Values are informational only: they do not change how bytes are decoded.
Qvd
An in-memory QVD file with headers, symbol tables, and the packed row index block.
TableHeader
Parsed representation of <QvdTableHeader> plus its fields.
WriteTable
A logical table ready to be encoded.

Enums§

QvdError
Errors produced by the QVD reader.
Value
A decoded symbol value.