# @antcube/node-zstandard

> Node.js interface to Zstandard (zstd-1.1.2)

Latest version **1.2.6** (published 2020-07-02) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @antcube/node-zstandard
pnpm add @antcube/node-zstandard
yarn add @antcube/node-zstandard
bun add @antcube/node-zstandard
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.6 |
| Published | 2020-07-02 |
| First published | 2019-06-15 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 3.4 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 114 |
| Author | Albert Duato Botam |
| Maintainers | antcube |
| Keywords | zstandard, zstd |

## Links

- npm: https://www.npmjs.com/package/@antcube/node-zstandard
- Repository: https://github.com/albertdb/node-zstandard
- Homepage: https://github.com/albertdb/node-zstandard#readme
- Issues: https://github.com/albertdb/node-zstandard/issues
- npm.io page: https://npm.io/package/@antcube/node-zstandard

## Recent versions

- 1.2.6 (latest) — 2020-07-02
- 1.2.5 — 2020-07-02
- 1.2.4 — 2019-06-15

## README

# node-zstandard
Node.js interface to Zstandard (zstd)

Includes Zstd 1.0.0 version for Linux (x86-64, glibc >=2.19), Windows (32 and 64 bits), and Mac OS X (Darwin).

## Interface

`var zstd = require ('node-zstandard')`

### Compression

#### zstd.compress (inputFile, outputFile [, compLevel], callback)
#### zstd.compressFileToFile (inputFile, outputFile [, compLevel], callback)

* `inputFile`: Path to the to file to be compressed.
* `outputFile`: Path to store the resulting compressed file. 
* `compLevel`: Compression level (default=3).
* `callback`: Function to be executed on task completion. Follows Node.js `(err, result)` pattern, being `result` equal to `outputFile` when succeeded.

NOTE: Input and output files should be different. Output file is overwritten if it exists.

```
zstd.compress('./test', './test.zst', 3, (err, result) => {
  if (err)
    throw err;
  console.log (result);
});
```

#### compressStreamToFile (readableStream, outputFile [, compLevel], callback)

* `readableStream`: Data Node.js Stream to be compressed.
* `outputFile`: Path to store the resulting compressed file. 
* `compLevel`: Compression level (default=3).
* `callback`: Function to be executed on task initialization. Follows Node.js `(err, result)` pattern, being `result` an EventEmitter that can emit the following events:
  * `error`: Emitted when an error reading the stream or creating the compressed file occurred. Error message is provided.
  * `end`: Emitted when task ended successfully.

NOTE: Output file is overwritten if it exists.

```
zstd.compressStreamToFile(aReadableStream, './test.zst', 3, (err, result) => {
  if (err)
    throw err;
  result.on('error', (err) => {
    throw err;
  }
  result.on('end', () => {
    console.log ('Compression ended');
  }
  console.log ('Compression started');
});
```

### Decompression

#### zstd.decompress (inputFile, outputFile, callback)
#### zstd.decompressFileToFile (inputFile, outputFile, callback)

* `inputFile`: Path to the to compressed input file.
* `outputFile`: Path to store the resulting decompressed file. 
* `callback`: Function to be executed on task completion. Follows Node.js `(err, result)` pattern, being `result` equal to `outputFile` when succeeded.

NOTE: Input and output files should be different. Output file is overwritten if it exists.

```
zstd.decompress('./test.zst','./test', (err, result) => {
  if (err)
    throw err;
  console.log (result);
});
```

#### decompressFileToStream (inputFile, writableStream, callback)

* `inputFile`: Path to the to compressed input file.
* `writableStream`: Node.js Stream where to output decompressed data.
* `callback`: Function to be executed on task initialization. Follows Node.js `(err, result)` pattern, being `result` an EventEmitter that can emit the following events:
  * `error`: Emitted when an error involving streams or file decompression occurred. Error message is provided.
  * `finish`: Emitted when finished writting decompressed data to output stream.

```
zstd.decompressFileToStream ('./test', aWritableStream, (err, result) => {
  if (err)
    throw err;
  result.on('error', (err) => {
    throw err;
  }
  result.on('finish', () => {
    console.log ('Decompression finished');
  }
  console.log ('Decompression started');
});
```

#### decompressionStreamFromFile (inputFile, callback)

* `inputFile`: Path to the to compressed input file.
* `callback`: Function to be executed on task initialization. Follows Node.js `(err, result)` pattern, being `result` an EventEmitter that can emit the following events:
  * `error`: Emitted when an error involving streams or file decompression occurred. Error message is provided.
  * `data`: Emitted when a chunk of decompressed data is generated. Data is obviously provided.
  * `end`: Emitted when decompression ended and all data events have been emitted.

```
zstd.decompressionStreamFromFile ('./test', (err, result) => {
  if (err)
    throw err;
  var decompressedData = '';
  result.on('error', (err) => {
    throw err;
  }
  result.on('data', (data) => {
    decompressedData += data;
  }
  result.on('end', () => {
    console.log (decompressedData);
  }
});
```

## License
Apache 2.0

## Cube
重新编译zstd
> https://github.com/shawnt22/zstd
在工程根目录下执行 make ,得到构建产物 zstd 文件

---
_Source: https://npm.io/package/@antcube/node-zstandard · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
