Skip to main content

High-performance Qlik QVD file reader/writer with Parquet/Arrow/DataFusion support — Rust-powered Python bindings (PyArrow, pandas, Polars)

Project description

qvd

Crates.io PyPI npm 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
  • Node.js / TypeScript — native bindings via napi-rs, async I/O
  • CLI — inspect, convert, filter, head

Quick Start

# Cargo.toml
qvd = "0.7.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")
npm install qvdrs
import { readQvd, saveQvd } from 'qvdrs'
const table = await readQvd('data.qvd')
await saveQvd(table, '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
TypeScript Examples Read/write, EXISTS, concat, PK merge, async patterns
API Reference Full API tables for Rust, Python, and TypeScript
Release Notes Changelog for all versions

License

MIT — Stanislav Chernov (@bintocher)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qvdrs-0.7.0.tar.gz (111.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

qvdrs-0.7.0-cp39-abi3-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.9+Windows x86-64

qvdrs-0.7.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

qvdrs-0.7.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

qvdrs-0.7.0-cp39-abi3-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

qvdrs-0.7.0-cp39-abi3-macosx_10_12_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file qvdrs-0.7.0.tar.gz.

File metadata

  • Download URL: qvdrs-0.7.0.tar.gz
  • Upload date:
  • Size: 111.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for qvdrs-0.7.0.tar.gz
Algorithm Hash digest
SHA256 e3ed4568da087eb7b5738208742787401e5d17cfdc1c69a7ea976d051fdffc5a
MD5 c95f6d2742e3fda976c3f47a2f0769f2
BLAKE2b-256 8519860513ced3f079a64f3c36c2e15c7972b8519e94b67123ebd214d53f2f71

See more details on using hashes here.

File details

Details for the file qvdrs-0.7.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: qvdrs-0.7.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for qvdrs-0.7.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 55c4f22c40add31cd9d3170077b4eedabafc056d01310fec517e1515d61ea833
MD5 9a434255354d0c38e1b5ec489476017f
BLAKE2b-256 0cc0cc3f2ff4ffd7da30a5e91280a368432ebf77163ef4a5eda8f4bcbcb14a9a

See more details on using hashes here.

File details

Details for the file qvdrs-0.7.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qvdrs-0.7.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 082cef733b20762defe350c9e2e3b6318bcdcd108139bd1ca781fa38a9f772bd
MD5 d4dd1bd8379932c6c5a97dfd97f56a50
BLAKE2b-256 ff5fad713f8aa61eeaddf990ca5dc4566e16f334abdae494b7ca3abc4a76f97e

See more details on using hashes here.

File details

Details for the file qvdrs-0.7.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for qvdrs-0.7.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 96a2b40a741d79e02f10bb9dc6f0df7ac9566ea8823c82712918249ff5249245
MD5 949f9d773760162a61e7a0d11603b6bc
BLAKE2b-256 92f680d92a9ff60775cbf034eb1b80bff8cce567779074e3b8a32ba08027e054

See more details on using hashes here.

File details

Details for the file qvdrs-0.7.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qvdrs-0.7.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63354eedd2327549a16bd72fc53f885fb5ec4259d2125da8532ea39d2dc1767f
MD5 1a661b79c2713c5f9e55cbd3662cc443
BLAKE2b-256 d6c1cae4d75872624d448b29b3cbfb6cba8e16e4dc383e4890102ac58e57fb59

See more details on using hashes here.

File details

Details for the file qvdrs-0.7.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qvdrs-0.7.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6874522b6af337981d321aefafb19e3f66480c2f2bacd65d5c13af4397e3283c
MD5 ff7ee553f3ba428ac464517ee2c323aa
BLAKE2b-256 045f2c265ed6485c6edc09483019c75527830282319b332a1edb2790af75d879

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page