1.0.1 • Published 12 months ago

json-xz v1.0.1

Weekly downloads
-
License
LGPL-3.0
Repository
github
Last release
12 months ago

json-xz

Small library to read and write XZ compressed JSON files. XZ compression gives you some of the highest compression ratios, while still being very fast. This utilizes the xz library, which is a multithreaded C++ binding to liblzma.

npm package | GitHub source code

Installation

npm i json-xz

A minified version is provided as jsonxz.min.js. A bundle is not provided, as xz uses node-gyp to compile C++ bindings. See documentation for node-gyp if the xz dependency is not installing.

Usage

import jsonxz from "json-xz";

const data = await jsonxz.read("./data.json.xz");
// compression level is 1 (least/fastest) to 9 (most/slowest); default is 6
await jsonxz.write("./data.json.xz", data, 6);

For convenience, you can also read/write raw data from XZ compressed files. You can use this interface if you want to stringify the JSON yourself, or perhaps use some other format besides JSON:

const raw_data_str = await jsonxz.readFile("./data.xz");
// you can also write a Buffer or Uint8Array
await jsonxz.writeFile("./data.xz", raw_data_str, 6);

This gives ~27% size reduction for some example data, and compression generally seems to be around that for different JSON files.

1.0.1

12 months ago

1.0.0

12 months ago