Metadata-Version: 2.4
Name: qvdrs
Version: 0.6.2
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Database
License-File: LICENSE
Summary: High-performance Qlik QVD file reader/writer with Parquet/Arrow/DataFusion support — Rust-powered Python bindings (PyArrow, pandas, Polars)
Keywords: qvd,qlik,parquet,arrow,datafusion,pandas,polars
Home-Page: https://github.com/bintocher/qvdrs
Author-email: Stanislav Chernov <bintocher@yandex.com>
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://github.com/bintocher/qvdrs#readme
Project-URL: Homepage, https://github.com/bintocher/qvdrs
Project-URL: Issues, https://github.com/bintocher/qvdrs/issues
Project-URL: Repository, https://github.com/bintocher/qvdrs

# qvd

[![Crates.io](https://img.shields.io/crates/v/qvd.svg)](https://crates.io/crates/qvd)
[![PyPI](https://img.shields.io/pypi/v/qvdrs.svg)](https://pypi.org/project/qvdrs/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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](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

```toml
# Cargo.toml
qvd = "0.6.2"
```
```rust
let table = qvd::read_qvd_file("data.qvd")?;
qvd::write_qvd_file(&table, "copy.qvd")?;
```

```bash
pip install qvdrs
```
```python
import qvd
table = qvd.read_qvd("data.qvd")
table.save("copy.qvd")
```

## Documentation

| | |
|---|---|
| [Rust Examples](docs/rust_examples.md) | Read/write, streaming, EXISTS, Parquet, Arrow, concat, PK merge, DataFusion |
| [Python Examples](docs/python_examples.md) | Read/write, Arrow, pandas, Polars, DuckDB, concat, PK merge, workflows |
| [API Reference](docs/api_reference.md) | Full API tables for Rust and Python |
| [Release Notes](RELEASE_NOTES.md) | Changelog for all versions |

## License

MIT — Stanislav Chernov ([@bintocher](https://github.com/bintocher))

