@kafkajs/zstd
Version:
A KafkaJS codec for ZStandard compression
81 lines (60 loc) • 1.94 kB
Markdown
ZStandard codec for KafkaJS.
> **NOTE**: This codec relies on [cppzst](https://www.npmjs.com/package/cppzst) for compression and decompression. Please divert any issues with cppzst there, and only open issues on this repo in case the version being used here needs to be updated.
>
> This package is provided on a best-effort basis. See [
```sh
npm install --save @kafkajs/zstd
```
```javascript
const { CompressionTypes, CompressionCodecs } = require('kafkajs')
const ZstdCodec = require('@kafkajs/zstd')
// Both compressionParams and decompressionParams are optional
const compressionParams = { level: 1 }
const decompressionParams = {}
CompressionCodecs[CompressionTypes.ZSTD] = ZstdCodec(compressionParams, decompressionParams)
```
**Optional** Allows you to configure the compression level and training data.
```js
{
/*
* Higher compression level means faster at the cost of compression ratio or memory usage.
* See https://facebook.github.io/zstd/
*/
level: 3,
/*
* Training data for improving performance on small payloads.
* See https://facebook.github.io/zstd/#small-data
*/
dict: trainingData,
dictSize: Buffer.byteLength(trainingData)
}
```
**Optional** Allows you to configure the training data.
```js
{
/*
* Training data for improving performance on small payloads.
* See https://facebook.github.io/zstd/#small-data
*/
dict: trainingData,
dictSize: Buffer.byteLength(trainingData)
}
```
```sh
$ docker-compose up -d && node scripts/waitForKafka.js
$ npm test
$ npm run test:watch
$ npm run test:types
$ npm run lint
```
See [LICENSE](https://github.com/kafkajs/zstd/blob/master/LICENSE) for more details.