Skip to content

v0.7.0: Node.js/TypeScript bindings via napi-rs

Choose a tag to compare

@bintocher bintocher released this 12 Apr 17:15
· 4 commits to main since this release
ca6b118

Node.js / TypeScript bindings

Native Rust performance in JavaScript via napi-rs. All I/O operations are async (libuv thread pool). Sync variants available for scripts/CLI.

Install

npm install qvdrs

Usage

import { readQvd, saveQvd, JsExistsIndex } from 'qvdrs'

const table = await readQvd('data.qvd')
console.log(table.numRows, table.columns)
await saveQvd(table, 'copy.qvd')

API

  • readQvd / readQvdSync — read QVD files
  • saveQvd / saveQvdSync — write QVD files
  • JsQvdTable — full table API (get, filter, head, toJson, symbols, normalize, concatenate, concatenatePk)
  • JsExistsIndex — O(1) EXISTS() lookups
  • readQvdFiltered — streaming filtered reads
  • concatenateQvd / concatenatePkQvd — file-level merge operations

Platforms

Package Platform
qvdrs-win32-x64-msvc Windows x64
qvdrs-linux-x64-gnu Linux x64
qvdrs-linux-arm64-gnu Linux arm64
qvdrs-darwin-x64 macOS Intel
qvdrs-darwin-arm64 macOS Apple Silicon

Requirements

  • Node.js 22+
  • TypeScript types included

Testing

  • 27 unit tests + 418 QVD file roundtrip tests — all passing