{"_id":"@anglinb/lz4-napi","_rev":"2-9a06045b894346f3f79df9c00d87642d","name":"@anglinb/lz4-napi","dist-tags":{"latest":"2.8.1-frame-sync"},"versions":{"2.8.0-frame-sync":{"name":"@anglinb/lz4-napi","version":"2.8.0-frame-sync","keywords":["napi-rs","NAPI","N-API","Rust","node-addon","node-addon-api","lz4","node"],"license":"MIT","_id":"@anglinb/lz4-napi@2.8.0-frame-sync","maintainers":[{"name":"anglinb","email":"brianranglin@gmail.com"}],"homepage":"https://github.com/anglinb/lz4-napi#readme","bugs":{"url":"https://github.com/anglinb/lz4-napi/issues"},"ava":{"require":["@swc-node/register"],"timeout":"2m","extensions":["ts"],"workerThreads":false,"environmentVariables":{"TS_NODE_PROJECT":"./tsconfig.json"}},"dist":{"shasum":"8767da83d88df764274bba4d937f94dba42d5fad","tarball":"https://registry.npmjs.org/@anglinb/lz4-napi/-/lz4-napi-2.8.0-frame-sync.tgz","fileCount":5,"integrity":"sha512-O60rLycvhBGXcFjcbfCLDxUml0P27n72sLVSX0dJXyJKCRgmx6pJ73AQJSXHnz1519x/6fUiCnitv8RxR3Jopg==","signatures":[{"sig":"MEYCIQCwJ6YEp2Uio5HdCI18jAqEgYeFyWgHCWkcMxbe8GG+6AIhANsHzQjSJdLB5npNk6SdN9zIg396h6/HAFHpAaWPHaKR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16586},"main":"index.js","napi":{"package":{"name":"@anglinb/lz4-napi"},"targets":["x86_64-unknown-linux-gnu","x86_64-apple-darwin","x86_64-pc-windows-msvc","x86_64-unknown-linux-musl","aarch64-unknown-linux-gnu","i686-pc-windows-msvc","armv7-unknown-linux-gnueabihf","aarch64-apple-darwin","aarch64-linux-android","arm-linux-androideabi","x86_64-unknown-freebsd","aarch64-unknown-linux-musl","aarch64-pc-windows-msvc"],"binaryName":"lz4-napi"},"types":"./index.d.ts","engines":{"node":">= 10"},"exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"5f7a2d7e808954aa23e517eb5e79f3cb1c25efb2","scripts":{"lint":"eslint -c ./.eslintrc.yml .","test":"ava","bench":"node -r @swc-node/register benchmark/bench.ts","build":"napi build --platform --release","format":"run-p format:source format:rs format:toml","version":"napi version && conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md","test:mem":"node ./memory-leak-detect.mjs","artifacts":"napi artifacts --output-dir artifacts --npm-dir ./npm","format:rs":"cargo fmt","build:debug":"napi build --platform","format:toml":"taplo format","format:source":"prettier --config ./package.json --write .","prepublishOnly":"napi prepublish -t npm && esbuild --minify --outfile=index.js --allow-overwrite index.js"},"_npmUser":{"name":"anglinb","actor":{"name":"anglinb","type":"user","email":"brianranglin@gmail.com"},"email":"brianranglin@gmail.com"},"prettier":{"semi":false,"parser":"typescript","printWidth":120,"arrowParens":"always","singleQuote":true,"trailingComma":"all"},"repository":{"url":"git+https://github.com/anglinb/lz4-napi.git","type":"git"},"_npmVersion":"10.8.2","description":"Fastest lz4 compression library in Node.js, powered by napi-rs and lz4-flex.","directories":{},"lint-staged":{"*.md":["prettier --parser markdown --write"],"*.json":["prettier --parser json --write"],"*.@(yml|yaml)":["prettier --parser yaml --write"],"*.@(js|ts|tsx)":["prettier --write","eslint -c .eslintrc.yml --fix"]},"_nodeVersion":"20.18.0","dependencies":{"@node-rs/helper":"^1.3.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.0","devDependencies":{"ava":"^6.0.0","benny":"^3.7.1","chalk":"^5.3.0","husky":"^9.1.5","table":"^6.8.2","eslint":"^8.53.0","snappy":"^7.2.2","esbuild":"^0.24.0","prettier":"^3.3.3","@swc/core":"^1.3.96","@taplo/cli":"^0.7.0","typescript":"^5.5.4","@types/node":"^20.8.10","lint-staged":"^15.2.9","@napi-rs/cli":"^3.0.0-alpha.63","npm-run-all2":"^6.2.2","pretty-bytes":"^6.1.1","@swc-node/register":"^1.6.8","eslint-plugin-import":"^2.29.0","eslint-config-prettier":"^9.0.0","@typescript-eslint/parser":"^7.0.0","conventional-changelog-cli":"^4.1.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"optionalDependencies":{"@anglinb/lz4-napi-darwin-x64":"2.8.0-frame-sync","@anglinb/lz4-napi-freebsd-x64":"2.8.0-frame-sync","@anglinb/lz4-napi-darwin-arm64":"2.8.0-frame-sync","@anglinb/lz4-napi-android-arm64":"2.8.0-frame-sync","@anglinb/lz4-napi-linux-x64-gnu":"2.8.0-frame-sync","@anglinb/lz4-napi-linux-x64-musl":"2.8.0-frame-sync","@anglinb/lz4-napi-win32-x64-msvc":"2.8.0-frame-sync","@anglinb/lz4-napi-linux-arm64-gnu":"2.8.0-frame-sync","@anglinb/lz4-napi-win32-ia32-msvc":"2.8.0-frame-sync","@anglinb/lz4-napi-android-arm-eabi":"2.8.0-frame-sync","@anglinb/lz4-napi-linux-arm64-musl":"2.8.0-frame-sync","@anglinb/lz4-napi-win32-arm64-msvc":"2.8.0-frame-sync","@anglinb/lz4-napi-linux-arm-gnueabihf":"2.8.0-frame-sync"},"_npmOperationalInternal":{"tmp":"tmp/lz4-napi_2.8.0-frame-sync_1751508979703_0.7721012698567333","host":"s3://npm-registry-packages-npm-production"}},"2.8.1-frame-sync":{"name":"@anglinb/lz4-napi","version":"2.8.1-frame-sync","description":"Fastest lz4 compression library in Node.js, powered by napi-rs and lz4-flex.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/anglinb/lz4-napi.git"},"license":"MIT","keywords":["napi-rs","NAPI","N-API","Rust","node-addon","node-addon-api","lz4","node"],"napi":{"binaryName":"lz4-napi","package":{"name":"@anglinb/lz4-napi"},"targets":["x86_64-unknown-linux-gnu","x86_64-apple-darwin","x86_64-pc-windows-msvc","x86_64-unknown-linux-musl","aarch64-unknown-linux-gnu","i686-pc-windows-msvc","armv7-unknown-linux-gnueabihf","aarch64-apple-darwin","aarch64-linux-android","arm-linux-androideabi","x86_64-unknown-freebsd","aarch64-unknown-linux-musl","aarch64-pc-windows-msvc"]},"engines":{"node":">= 10"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"scripts":{"artifacts":"napi artifacts --output-dir artifacts --npm-dir ./npm","bench":"node -r @swc-node/register benchmark/bench.ts","build":"napi build --platform --release","build:debug":"napi build --platform","format":"run-p format:source format:rs format:toml","format:toml":"taplo format","format:rs":"cargo fmt","format:source":"prettier --config ./package.json --write .","lint":"eslint -c ./.eslintrc.yml .","prepublishOnly":"napi prepublish -t npm && esbuild --minify --outfile=index.js --allow-overwrite index.js","test":"ava","test:mem":"node ./memory-leak-detect.mjs","version":"napi version && conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md"},"devDependencies":{"@napi-rs/cli":"^3.0.0-alpha.63","@swc-node/register":"^1.6.8","@swc/core":"^1.3.96","@taplo/cli":"^0.7.0","@types/node":"^20.8.10","@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","ava":"^6.0.0","benny":"^3.7.1","chalk":"^5.3.0","conventional-changelog-cli":"^4.1.0","esbuild":"^0.24.0","eslint":"^8.53.0","eslint-config-prettier":"^9.0.0","eslint-plugin-import":"^2.29.0","husky":"^9.1.5","lint-staged":"^15.2.9","npm-run-all2":"^6.2.2","prettier":"^3.3.3","pretty-bytes":"^6.1.1","snappy":"^7.2.2","table":"^6.8.2","typescript":"^5.5.4"},"dependencies":{"@node-rs/helper":"^1.3.3"},"lint-staged":{"*.@(js|ts|tsx)":["prettier --write","eslint -c .eslintrc.yml --fix"],"*.@(yml|yaml)":["prettier --parser yaml --write"],"*.md":["prettier --parser markdown --write"],"*.json":["prettier --parser json --write"]},"ava":{"require":["@swc-node/register"],"extensions":["ts"],"timeout":"2m","workerThreads":false,"environmentVariables":{"TS_NODE_PROJECT":"./tsconfig.json"}},"prettier":{"printWidth":120,"semi":false,"trailingComma":"all","singleQuote":true,"arrowParens":"always","parser":"typescript"},"packageManager":"yarn@4.5.0","exports":{".":{"import":"./index.js","require":"./index.js"}},"optionalDependencies":{"@anglinb/lz4-napi-linux-x64-gnu":"2.8.1-frame-sync","@anglinb/lz4-napi-darwin-x64":"2.8.1-frame-sync","@anglinb/lz4-napi-win32-x64-msvc":"2.8.1-frame-sync","@anglinb/lz4-napi-linux-x64-musl":"2.8.1-frame-sync","@anglinb/lz4-napi-linux-arm64-gnu":"2.8.1-frame-sync","@anglinb/lz4-napi-win32-ia32-msvc":"2.8.1-frame-sync","@anglinb/lz4-napi-linux-arm-gnueabihf":"2.8.1-frame-sync","@anglinb/lz4-napi-darwin-arm64":"2.8.1-frame-sync","@anglinb/lz4-napi-android-arm64":"2.8.1-frame-sync","@anglinb/lz4-napi-android-arm-eabi":"2.8.1-frame-sync","@anglinb/lz4-napi-freebsd-x64":"2.8.1-frame-sync","@anglinb/lz4-napi-linux-arm64-musl":"2.8.1-frame-sync","@anglinb/lz4-napi-win32-arm64-msvc":"2.8.1-frame-sync"},"_id":"@anglinb/lz4-napi@2.8.1-frame-sync","gitHead":"b643c1b12ae327a77fcdd79e269fe5148a762151","types":"./index.d.ts","bugs":{"url":"https://github.com/anglinb/lz4-napi/issues"},"homepage":"https://github.com/anglinb/lz4-napi#readme","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-fmtszJ9+mBi2FMOJ7ysZuxUj0kCM+d/cWInBO7WKMC8VwgGjxwrUXTEUQxvp+4T3UYif5N3F6K5tDf6QOaJ30Q==","shasum":"5498a8723401126c08e700e20823e6b6a70a7c34","tarball":"https://registry.npmjs.org/@anglinb/lz4-napi/-/lz4-napi-2.8.1-frame-sync.tgz","fileCount":5,"unpackedSize":16586,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCiKqFeiOfQiUpXKTydx30HuAovS5uUKqrtw/UqMZAVhQIgK04GbSXK4+VUXnOBgQ4FRtl2vT5cQCp3zfwayW+ultg="}]},"_npmUser":{"name":"anglinb","email":"brianranglin@gmail.com","actor":{"name":"anglinb","email":"brianranglin@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"anglinb","email":"brianranglin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lz4-napi_2.8.1-frame-sync_1751510910674_0.47413713686889514"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-03T02:16:19.590Z","modified":"2025-07-03T02:48:31.071Z","2.8.0-frame-sync":"2025-07-03T02:16:19.876Z","2.8.1-frame-sync":"2025-07-03T02:48:30.840Z"},"bugs":{"url":"https://github.com/anglinb/lz4-napi/issues"},"license":"MIT","homepage":"https://github.com/anglinb/lz4-napi#readme","keywords":["napi-rs","NAPI","N-API","Rust","node-addon","node-addon-api","lz4","node"],"repository":{"type":"git","url":"git+https://github.com/anglinb/lz4-napi.git"},"description":"Fastest lz4 compression library in Node.js, powered by napi-rs and lz4-flex.","maintainers":[{"name":"anglinb","email":"brianranglin@gmail.com"}],"readme":"# lz4-napi  \n\n> Node.js NAPI Binding for LZ4 compression algorithm, powered by Rust [napi-rs](https://napi.rs) and [lz4-flex](https://github.com/PSeitz/lz4_flex).\n\n**Pros:**\n\n- Fast! ⚡️\n- Memory Safe! 🔒\n- Uses libuv's threadpool! 🧵\n\n## Table of content\n\n<!-- toc -->\n\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Compress](#compress)\n  - [Uncompress](#uncompress)\n- [APIs](#apis)\n  - [Promises](#promises)\n    - [`compress`](#compress)\n    - [`uncompress`](#uncompress)\n  - [Sync](#sync)\n    - [`compressSync`](#compresssync)\n    - [`uncompressSync`](#uncompresssync)\n- [Benchmarks](#benchmarks)\n- [Performance](#performance)\n  - [Hardware](#hardware)\n  - [Results](#results)\n- [Contributing](#contributing)\n- [License](#license)\n\n<!-- tocstop -->\n\n<!-- GETTING STARTED -->\n## Installation\n\n```sh\nnpm i lz4-napi\n# OR\nyarn add lz4-napi\n```\n\n<!-- USAGE EXAMPLES -->\n\n## Usage\n\n### Compress\n\n```js\nconst { readFile } = require('fs/promises');\nconst { compress } = require('lz4-napi');\n\n// if you support top-level await\nconst buffer = await readFile(\"./bigFile.dat\");\nconst compressedBuffer = await compress(buffer)\n// Store compressed buffer somewhere\n```\n\n### Uncompress\n\n```js\nconst { uncompress } = require('lz4-napi');\n\n// if you support top-level await\nconst compressedBuffer = await getFromSomeStorage();\nconst uncompressedBuffer = await uncompress(compressedBuffer)\n// Do something with compressedBuffer!\n```\n\n## APIs\n\n### Promise\n\n#### `compress`\n\n```ts\n(data: Buffer | string | ArrayBuffer | Uint8Array, dict?: string | Buffer) => Promise<Buffer>\n```\n\n#### `uncompress`\n\n```ts\n(data: Buffer | string | ArrayBuffer | Uint8Array, dict?: string | Buffer) => Promise<Buffer>\n```\n\n#### `compressFrame`\n\n```ts\n(data: Buffer | string | ArrayBuffer | Uint8Array) => Promise<Buffer>\n```\n\n#### `decompressFrame`\n\n```ts\n(data: Buffer | string | ArrayBuffer | Uint8Array) => Promise<Buffer>\n```\n\n### Sync\n\n#### `compressSync`\n\n```ts\n(data: Buffer | string | ArrayBuffer | Uint8Array, dict?: string | Buffer) => Buffer\n```\n\n#### `uncompressSync`\n\n```ts\n(data: Buffer | string | ArrayBuffer | Uint8Array, dict?: string | Buffer) => Buffer\n```\n\n## Performance\n\n### Hardware\n\nBenchmarks runs on the following hardware:\n\n- Processor Name: i9 9900K\n- Total Number of Cores: 8\n- Hyper-Threading Technology: Enabled\n- Memory: 32 GB\n\n### Benchmark\n\n```sh\nRunning \"Compress\" suite...\nProgress: 100%\n\n  lz4:\n    911 ops/s, ±18.64%     | 54.68% slower\n\n  snappy:\n    2 010 ops/s, ±19.23%   | fastest\n\n  gzip:\n    78 ops/s, ±18.76%      | 96.12% slower\n\n  deflate:\n    118 ops/s, ±20.42%     | 94.13% slower\n\n  brotli:\n    6 ops/s, ±0.21%       | slowest, 99.7% slower\n\nFinished 5 cases!\n  Fastest: snappy\n  Slowest: brotli\nRunning \"Decompress\" suite...\nProgress: 100%\n\n  lz4:\n    9 425 ops/s, ±12.50%   | fastest\n\n  snappy:\n    3 900 ops/s, ±13.39%   | 58.62% slower\n\n  gzip:\n    823 ops/s, ±20.48%     | slowest, 91.27% slower\n\n  deflate:\n    1 350 ops/s, ±12.52%   | 85.68% slower\n\n  brotli:\n    979 ops/s, ±11.55%     | 89.61% slower\n\nFinished 5 cases!\n  Fastest: lz4\n  Slowest: gzip\nDone in 61.20s.\n```\n\n<!-- CONTRIBUTING -->\n\n## Contributing\n\nProject is pretty simple and straight forward for what is my needs, but if you have any idea you're welcome.\n\n> This projects uses [conventional commit](https://commitlint.js.org/#/) so be sure to use standard commit format or PR won't be accepted\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'feat(scope): some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n<!-- ACKNOWLEDGMENTS -->\n## Acknowledgments\n\n- [Brooooooklyn/snappy](https://github.com/Brooooooklyn/snappy) - Inspiration and project structure\n\n<!-- LICENSE -->\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n","readmeFilename":"README.md"}