{"_id":"@dstanesc/wasm-chunking-fastcdc-webpack","_rev":"1-ef5dcdb2f59a8ea24bef14bc34abcf6c","name":"@dstanesc/wasm-chunking-fastcdc-webpack","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@dstanesc/wasm-chunking-fastcdc-webpack","decription":"Wasm library for FastCDC content-defined slicing for bundlers such as Webpack. This is a convenience wrapper on the existing [rust implementation](https://github.com/nlfiedler/fastcdc-rs)","homepage":"https://github.com/dstanesc/wasm-chunking-fastcdc","author":{"name":"Hexagon and contributors"},"keywords":["fastcdc","wasm","webpack","chunking","cdc"],"collaborators":["dstanesc <dstanesc@gmail.com>"],"description":"This crate generates WebAssembly bindings to the FastCDC content defined slicing library","version":"0.1.0","license":"MIT OR Apache-2.0","repository":{"type":"git","url":"git+https://github.com/dstanesc/wasm-chunking-fastcdc.git"},"module":"chunking.js","types":"chunking.d.ts","sideEffects":false,"gitHead":"601d46e3086e42921caeda44d6c0f6a971191f34","bugs":{"url":"https://github.com/dstanesc/wasm-chunking-fastcdc/issues"},"_id":"@dstanesc/wasm-chunking-fastcdc-webpack@0.1.0","_nodeVersion":"16.13.1","_npmVersion":"8.17.0","dist":{"integrity":"sha512-yzrxGrwen/1qv2HVP676TGLGHFJhEE/u9bHkq9FLxsVSW5o3kumHmnQROFjxAR8s8Tum4qcdKhiWgxb4JE31qw==","shasum":"cadac3b1a628a700b0908abdd18350e1913d7b59","tarball":"https://registry.npmjs.org/@dstanesc/wasm-chunking-fastcdc-webpack/-/wasm-chunking-fastcdc-webpack-0.1.0.tgz","fileCount":8,"unpackedSize":43210,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNbSWU5eUVuy2CsEqLZR6P6MEReCHjvkD6B91RUzy9egIhAOGYohYgvP1nodcNR4z0/uU9Mi2Xe0vHXEosMtEeTu17"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKQ0jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNjw/7B5Gz4krzk++MnZMeb8SIdsOGce5htcyKiGmGh3gPUZmcSIuf\r\nBji5EPY/lbsqv2DljHMQs7n7wZAh2NdsJqUZiOoMgWKfFMb6958nbqkQYFTR\r\nXiNOR7/8UFdYa+kqI4m8/L46oQzGlgIJIvRFyrzrQLlKYSbpss3CtAK6vk9n\r\nmHrwvYq5QzNHSWAVcMnB/GmckuKwLlGSum5FIW8BNtZVT7qetyiUDoop+9bm\r\ndGCXzbDuIpnO6+Lpao0b92gnS4Hz6Li7QQV77qyIOS5IKA+hER3ZAxjv+3GV\r\nH/52sVqHddTOnQDYte0pXRCriD9LXgyN5b49yc45z7fWVqFdcQH/VKiDfjo4\r\nwLdzpngiUMxJdGkEzWkveL6K6zvkSSR3Z/BXxkmg6e218nhpiAvyo8oZNRHR\r\nHES5GPsT6R9+JZnXCJzDg3rxiUPu/sCgUHF/Z6V8Gdy+AT6VthWo8Br9rHLT\r\nAWF9YtTQAFdLsuysdcLY+viSMZloiI0tNEjTxSLeFq2bvsu84ZT4yTCY4A0+\r\n8lyibQVHb3v0ThHkW5YEUdngurf5egakaVvXSyMFmlUQmrKRo1uGmjRqh/kQ\r\neI/ZRfG4EpwMRKcaGHFv8FM9VYpQRt4gsN7+y+dgEnYD1C7fioCwcS7KmZb0\r\nXeHVC5FL3nhkgE/pd7CNzLLSyP7xrswJlx4=\r\n=oKQx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dstanesc","email":"dstanesc@gmail.com"},"directories":{},"maintainers":[{"name":"dstanesc","email":"dstanesc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wasm-chunking-fastcdc-webpack_0.1.0_1663634723694_0.5579078477559989"},"_hasShrinkwrap":false},"0.1.1":{"name":"@dstanesc/wasm-chunking-fastcdc-webpack","decription":"Wasm library for FastCDC content-defined slicing for bundlers such as Webpack. This is a convenience wrapper on the existing [rust implementation](https://github.com/nlfiedler/fastcdc-rs)","homepage":"https://github.com/dstanesc/wasm-chunking-fastcdc","author":{"name":"Hexagon and contributors"},"keywords":["fastcdc","wasm","webpack","chunking","cdc"],"collaborators":["dstanesc <dstanesc@gmail.com>"],"description":"This crate generates WebAssembly bindings to the FastCDC content defined slicing library","version":"0.1.1","license":"MIT OR Apache-2.0","repository":{"type":"git","url":"git+https://github.com/dstanesc/wasm-chunking-fastcdc.git"},"module":"chunking.js","types":"chunking.d.ts","sideEffects":false,"gitHead":"3d2f1d9467538b6ce4a69ff817fade1193133362","bugs":{"url":"https://github.com/dstanesc/wasm-chunking-fastcdc/issues"},"_id":"@dstanesc/wasm-chunking-fastcdc-webpack@0.1.1","_nodeVersion":"16.13.1","_npmVersion":"8.17.0","dist":{"integrity":"sha512-D1JUVRFS+rrPWRxb+vbe1bVLO2OSysFR52/f2+FDgL8KfegVNIOCAGEbKNgiBWA5/2UmwR/RmfTZ2ffMAz8Dzw==","shasum":"bd20d44a55015d7187a02c86a302dbb3fde7bfde","tarball":"https://registry.npmjs.org/@dstanesc/wasm-chunking-fastcdc-webpack/-/wasm-chunking-fastcdc-webpack-0.1.1.tgz","fileCount":6,"unpackedSize":31432,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPz9AKy5sXs7KVsFybVdeDzahC0I21yIMKQoS01vta/AIhAPoT5HClKjGhQjE1SSfCD/8wPkSLR7RQVK9hjbW7XeN8"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKRiuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrFvA//YXaEQYCP1jm3dXSpwEhIW6r2JYmcRSzqtnYnxMYKMV0Pqc32\r\njH07fh0JMxrdG1OdiH8XBb48cK30aDky7y1eV2ICSGGNFz6LCrbcVzgrfiB7\r\nedHXvVXirK4s+2GvXvFB7t+6eNyQxfa7yKad+bzcL+g9lBEB9JhOoAy99y2U\r\nADzCe3lTzEJgN6rm6UUF2QuI1+PQ0rvTrw5vHoIIyIybMFpSecCcMBsJF8VZ\r\ngtpj11mrWZZcqGfryhPkQUTc0nwa939PWhfthff/f98DoC8RTqLPh+HgXmss\r\n1zBgwj4kMR00D+WL5Yk/UOtKmoHQojIVIglHl3d129mhL0hFhoP0OyVGFiCq\r\n1eF373/wmFPEZfF30mCDprmM63i+gLHLmL3TmzHOSbnpUfhxBjkxZCMU9Vis\r\ntfGIeY2nXDfiw+uz6zxku8CinQUsMKIX66K/RoJf6N9HwzGi+JrZwOMenpMB\r\niryTDhVMvWV8E9MPhwi3294vANZF6ZvY534PvGSWsWVeP3oZKyNz21q5lDoy\r\nni8oq9b4HwrW+hqwYqfMs/ZR/rz0BHRDiI2MfV1zU61HNw0iBiRvJu5/rsz3\r\nWQve0ASglw/Wcbh2I3wil3iWwStZk4nsUeOHoC9zU2W4p7oKXNnfQHiPNghk\r\n9CcpgOakle53Ctv/N7ijBgLK8gPq3OAWteo=\r\n=KAXb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dstanesc","email":"dstanesc@gmail.com"},"directories":{},"maintainers":[{"name":"dstanesc","email":"dstanesc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wasm-chunking-fastcdc-webpack_0.1.1_1663637678489_0.8496822684822407"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-20T00:45:23.643Z","0.1.0":"2022-09-20T00:45:23.910Z","modified":"2022-09-20T01:34:38.755Z","0.1.1":"2022-09-20T01:34:38.675Z"},"maintainers":[{"name":"dstanesc","email":"dstanesc@gmail.com"}],"description":"This crate generates WebAssembly bindings to the FastCDC content defined slicing library","homepage":"https://github.com/dstanesc/wasm-chunking-fastcdc","keywords":["fastcdc","wasm","webpack","chunking","cdc"],"repository":{"type":"git","url":"git+https://github.com/dstanesc/wasm-chunking-fastcdc.git"},"author":{"name":"Hexagon and contributors"},"bugs":{"url":"https://github.com/dstanesc/wasm-chunking-fastcdc/issues"},"license":"MIT OR Apache-2.0","readme":"## Wasm Chunking Fastcdc\n\nThis crate generates [WebAssembly](https://rustwasm.github.io/docs/book/what-is-webassembly.html) bindings to the [FastCDC](https://github.com/nlfiedler/fastcdc-rs) content defined slicing library. \n\n\n## Install for nodejs usage\n\n```\nnpm install @dstanesc/wasm-chunking-fastcdc-node\n```\n\n## Install for bundler usage\n\n```\nnpm install @dstanesc/wasm-chunking-fastcdc-webpack\n```\n\n\n## Usage TypeScript\n\n```js\n//import { compute_chunks } from \"@dstanesc/wasm-chunking-fastcdc-node\"\nimport { compute_chunks } from \"@dstanesc/wasm-chunking-fastcdc-webpack\"\nconst buf: Uint8Array  = ...\n// chunking  spec: min_size 16 KB, avg size 32 KB, max size 64 KB\nconst offsets: Uint32Array = compute_chunks(buf, 16384, 32768, 65536)   \n```\n\n\n## Wasm build requirements\n\n- [Rust toolchain](https://www.rust-lang.org/tools/install)\n- [Wasm-pack](https://rustwasm.github.io/wasm-pack/installer/)\n\n\n## Wasm build\n\n```sh\nwasm-pack build --out-dir pkg/webpack --out-name chunking --target bundler --scope dstanesc\nwasm-pack build --out-dir pkg/node --out-name chunking --target nodejs --scope dstanesc\n```\n\n## Wasm test\n\nInteractive mode, eg. to check debugging info in the console\n```sh\nwasm-pack test --firefox\n```\n\nHeadless mode\n```sh\nwasm-pack test --headless --firefox\n```\n\n## Pack for local usage\n\n```\nnpm pack pkg/node/\nnpm pack pkg/webpack/\n```\n\n\n## Rust API\n\n### Function wasm_chunking_fastcdc::compute_chunks\n\n```rs\npub fn compute_chunks(\n    source: &[u8], \n    min_size: u32, \n    avg_size: u32, \n    max_size: u32\n) -> Result<Vec<u32>, RangeError>\n```\n\nCompute chunks from a given slice of bytes.\n\nThe min_size specifies the preferred minimum chunk size, max_size the preferred maximum chunk size; the avg_size is the desired “normal size” of the chunks. The smallest acceptable min_size is 64 bytes and likewise 256 bytes and 1024 bytes for avg_size and respectively max_size\n\nA js_sys::RangeError is returned when the above chunking specification is out of range.\n\nExample:\n\n```rs\nuse wasm_chunking_fastcdc::compute_chunks;\nlet data: Vec<u8> = br\"Lorem ipsum dolor sit amet, consectetur adipiscing elit...put more bits in here...\".to_vec();\nlet slice: &[u8] = &data;\nlet min_size: u32 = 64;\nlet avg_size: u32 = 256;\nlet max_size: u32 = 1024;\nlet offsets: Vec<u32> = compute_chunks(slice, min_size, avg_size, max_size).unwrap();\n```\n\n## License\n\nLicensed under either [Apache 2.0](http://opensource.org/licenses/MIT) or [MIT](http://opensource.org/licenses/MIT) at your option.","readmeFilename":"README.md"}