zstd-native
v1.0.3
Published
A native Node.js addon for Zstandard compression and decompression
Maintainers
Readme
zstd-native
A native Node.js addon for high-performance compression and decompression using zstd via N-API
Features
- Fast zstd compression/decompression
- Adjustable compression levels (1-22)
- Configurable size limits (default 2GB)
- Promise-based API
Installation
npm install zstd-nativeRequires
zstdlibrary and build tools
Usage
const { zstdCompress, zstdDecompress } = require('zstd-native');
(async () => {
const input = Buffer.from('Hello zstd!');
const compressed = await zstdCompress(input);
const decompressed = await zstdDecompress(compressed);
console.log(decompressed.toString()); // "Hello zstd!"
})();API
zstdCompress(buffer, [level])
buffer: Input Buffer to compresslevel: Compression level (1-22, default=3)- Returns: Promise resolving to compressed Buffer
zstdDecompress(buffer)
buffer: Compressed Buffer to decompress- Returns: Promise resolving to decompressed Buffer
setMaxInputSize(size)
- Set max input size in bytes (default=2GB)
setMaxOutputSize(size)
- Set max output size in bytes (default=2GB)
Error Handling
try {
const compressed = await zstdCompress(largeBuffer);
} catch (error) {
if (error.message.includes('exceeds maximum')) {
console.error('Size limit exceeded');
}
}Requirements
- Node.js 14+
- zstd library (
libzstd-devon Ubuntu/Debian,zstdon Arch,brew install zstdon macOS)
License
MIT
