qvd 0.6.0

High-performance library for reading, writing and converting Qlik QVD files with Parquet/Arrow/DataFusion support
Documentation

qvd

Crates.io PyPI License: MIT

High-performance Rust library for reading, writing, converting and merging Qlik QVD files.

Disclaimer: This project is not affiliated with Qlik Technologies or QlikTech. QVD is a proprietary format; all trademarks belong to Qlik. This library was built from scratch using publicly available information. See LEGAL.md for details.

Features

  • Read/Write QVD with byte-identical roundtrip (tested on 399 files up to 2.8 GB)
  • Streaming chunk-based reader for large files
  • EXISTS() O(1) index + filtered reads (2.5x faster than Qlik Sense)
  • Concatenate — pure append with strict/union schema modes
  • PK Merge — upsert/dedup by primary key (replace/skip/error). First QVD library with this
  • Parquet/Arrow — bidirectional conversion, write_arrow() for direct Arrow-to-QVD
  • DuckDB / DataFusion — register QVD as SQL tables
  • Python — PyArrow, pandas, Polars via zero-copy Arrow bridge
  • CLI — inspect, convert, filter, head

Quick Start

# Cargo.toml
qvd = "0.6.0"
let table = qvd::read_qvd_file("data.qvd")?;
qvd::write_qvd_file(&table, "copy.qvd")?;
pip install qvdrs
import qvd
table = qvd.read_qvd("data.qvd")
table.save("copy.qvd")

Documentation

Rust Examples Read/write, streaming, EXISTS, Parquet, Arrow, concat, PK merge, DataFusion
Python Examples Read/write, Arrow, pandas, Polars, DuckDB, concat, PK merge, workflows
API Reference Full API tables for Rust and Python
Release Notes Changelog for all versions

License

MIT — Stanislav Chernov (@bintocher)