{"_id":"@bitruvius/turbo-lepcc","_rev":"19-45a8231cb5b058d47132c16526252360","name":"@bitruvius/turbo-lepcc","dist-tags":{"latest":"0.3.3"},"versions":{"0.3.0":{"name":"@bitruvius/turbo-lepcc","version":"0.3.0","keywords":["bitruvius","geospatial","webgl2","lepcc","point-cloud","lidar","esri","wasm","decoder"],"license":"SEE LICENSE IN LICENSE","_id":"@bitruvius/turbo-lepcc@0.3.0","maintainers":[{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},{"name":"danrhedges","email":"danrhedges@gmail.com"}],"homepage":"https://dev.bitruvius.com/sdks/js/","bugs":{"url":"https://github.com/bitruvius/support"},"dist":{"shasum":"fb95926f9d068afcefd9302352dc82efb717931f","tarball":"https://registry.npmjs.org/@bitruvius/turbo-lepcc/-/turbo-lepcc-0.3.0.tgz","fileCount":17,"integrity":"sha512-ur8s/1jTW+hCv4n/JNxVFMxsF5BPgxG6ZgTEAEJVvGYvpPtHA8vb6UL+t3QxTUDZoFskMc5EtgWG0HF9CSu3Bw==","signatures":[{"sig":"MEUCIQDORuJ7NpwuIR++BdxtWHGdYJv6JfVH1UfSZocfMGPtRwIgIhkloLSs0Nlcs1kt659GyZJ4P0wSeAIiGRjofCtPe0M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96421},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"fb95926f9d068afcefd9302352dc82efb717931f","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm/*":"./wasm/*","./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun build ./src/index.ts ./src/i3s-decode-worker.ts --outdir dist --format esm --target browser --minify --external '@bitruvius/*' --define __dirname='\"\"' --define __filename='\"\"' && tsc --emitDeclarationOnly"},"_npmUser":{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},"_integrity":"sha512-ur8s/1jTW+hCv4n/JNxVFMxsF5BPgxG6ZgTEAEJVvGYvpPtHA8vb6UL+t3QxTUDZoFskMc5EtgWG0HF9CSu3Bw==","_npmVersion":"10.8.3","description":"TurboLEPCC: fast Esri LEPCC point-cloud decoder for the browser, pure-Rust wasm","directories":{},"sideEffects":["./src/index.ts"],"_nodeVersion":"24.3.0","dependencies":{"@bitruvius/geo-core":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/turbo-lepcc_0.3.0_1785722163005_0.8143746067644217","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@bitruvius/turbo-lepcc","version":"0.3.1","keywords":["bitruvius","geospatial","webgl2","lepcc","point-cloud","lidar","esri","wasm","decoder"],"license":"SEE LICENSE IN LICENSE","_id":"@bitruvius/turbo-lepcc@0.3.1","maintainers":[{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},{"name":"danrhedges","email":"danrhedges@gmail.com"}],"homepage":"https://dev.bitruvius.com/sdks/js/","bugs":{"url":"https://github.com/bitruvius/support"},"dist":{"shasum":"53c2a5d6ffc558b77af8fbde032dffa549f6254c","tarball":"https://registry.npmjs.org/@bitruvius/turbo-lepcc/-/turbo-lepcc-0.3.1.tgz","fileCount":17,"integrity":"sha512-p6t+gFe7Mpe056Sv56AlGUbdzjvo+hbx+QRjzYeEDJgwRkjio6H2aowZkqcL1PP5EGU3SrYCu39GWSPxfHZrdA==","signatures":[{"sig":"MEYCIQC6cqgz5Hoeck/YYRaby9mOIJ84hY/KApNvsc9G6QROnAIhAN/ZRlUPqOsOwlSY1Aaj+CUrpq6lE2C5iS+PMNPeuKol","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96599},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"53c2a5d6ffc558b77af8fbde032dffa549f6254c","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm/*":"./wasm/*","./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun build ./src/index.ts ./src/i3s-decode-worker.ts --outdir dist --format esm --target browser --minify --external '@bitruvius/*' --define __dirname='\"\"' --define __filename='\"\"' && tsc --emitDeclarationOnly"},"_npmUser":{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},"_integrity":"sha512-p6t+gFe7Mpe056Sv56AlGUbdzjvo+hbx+QRjzYeEDJgwRkjio6H2aowZkqcL1PP5EGU3SrYCu39GWSPxfHZrdA==","_npmVersion":"10.8.3","description":"TurboLEPCC: fast Esri LEPCC point-cloud decoder for the browser, pure-Rust wasm","directories":{},"sideEffects":["./src/index.ts"],"_nodeVersion":"24.3.0","dependencies":{"@bitruvius/geo-core":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/turbo-lepcc_0.3.1_1785725520898_0.3206060577938923","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@bitruvius/turbo-lepcc","version":"0.3.2","keywords":["bitruvius","geospatial","webgl2","lepcc","point-cloud","lidar","esri","wasm","decoder"],"license":"SEE LICENSE IN LICENSE","_id":"@bitruvius/turbo-lepcc@0.3.2","maintainers":[{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},{"name":"danrhedges","email":"danrhedges@gmail.com"}],"homepage":"https://dev.bitruvius.com/sdks/js/","bugs":{"url":"https://github.com/bitruvius/support"},"dist":{"shasum":"3ba031da54f72a9479e7716ffc8a27ba5b154b93","tarball":"https://registry.npmjs.org/@bitruvius/turbo-lepcc/-/turbo-lepcc-0.3.2.tgz","fileCount":17,"integrity":"sha512-PmWCgtqqXSaCK3tS5TmEMIckX7BG7awjTpEOxEhd1BUABbACdzrlwt4pAvMFco9HPnJGqXJqv2Ae3tl/aN68cQ==","signatures":[{"sig":"MEUCIBj4cuB9kpL1uTdzYqH8C6eqgcF0BVECoH58msoO6G3CAiEAl1uxtNpE2nOnNPWrPub2jvKcUPn1EUvmJagPr+50ijE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96599},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"3ba031da54f72a9479e7716ffc8a27ba5b154b93","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm/*":"./wasm/*","./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun build ./src/index.ts ./src/i3s-decode-worker.ts --outdir dist --format esm --target browser --minify --external '@bitruvius/*' --define __dirname='\"\"' --define __filename='\"\"' && tsc --emitDeclarationOnly"},"_npmUser":{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},"_integrity":"sha512-PmWCgtqqXSaCK3tS5TmEMIckX7BG7awjTpEOxEhd1BUABbACdzrlwt4pAvMFco9HPnJGqXJqv2Ae3tl/aN68cQ==","_npmVersion":"10.8.3","description":"TurboLEPCC: fast Esri LEPCC point-cloud decoder for the browser, pure-Rust wasm","directories":{},"sideEffects":["./src/index.ts"],"_nodeVersion":"24.3.0","dependencies":{"@bitruvius/geo-core":"^0.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/turbo-lepcc_0.3.2_1785952488834_0.2713175327217352","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"_id":"@bitruvius/turbo-lepcc@0.3.3","bugs":{"url":"https://github.com/bitruvius/support"},"dist":{"shasum":"a3876f590b7556fb5016b6b28c33e86b72b2a40e","tarball":"https://registry.npmjs.org/@bitruvius/turbo-lepcc/-/turbo-lepcc-0.3.3.tgz","fileCount":17,"integrity":"sha512-vmNiZ36BGHwZhGox8mpY+kKl8gtQQvmZo1OKZe/iFgSYyjn4/YA6vmuCnUEbmI+hbs181Um4jZfpn4Gfku0bvw==","signatures":[{"sig":"MEUCIQCnKO0gtc5LGmCWYz+6tSRCTAkNg4ZDzCNU1GMujVq67QIgF5AYT+fWV5MtEnXjIOwg9+76yC5YqWewR2YkkWdGERc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDRU2vrfZVcVt+e8vgE170VfFazX93zQJWWdWG13R7f6gIhAKfyvuHUWqHZ9A8CTaVlxXg+kJfb8OYGjLLcTkFq/3tG"}],"unpackedSize":97741},"main":"./dist/index.js","name":"@bitruvius/turbo-lepcc","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"a3876f590b7556fb5016b6b28c33e86b72b2a40e","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm/*":"./wasm/*","./package.json":"./package.json"},"license":"SEE LICENSE IN LICENSE","scripts":{"test":"bun test","build":"bun build ./src/index.ts ./src/i3s-decode-worker.ts --outdir dist --format esm --target browser --minify --external '@bitruvius/*' --define __dirname='\"\"' --define __filename='\"\"' && tsc --emitDeclarationOnly"},"version":"0.3.3","_npmUser":{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},"homepage":"https://dev.bitruvius.com/sdks/js/","keywords":["bitruvius","geospatial","webgl2","lepcc","point-cloud","lidar","esri","wasm","decoder"],"_integrity":"sha512-vmNiZ36BGHwZhGox8mpY+kKl8gtQQvmZo1OKZe/iFgSYyjn4/YA6vmuCnUEbmI+hbs181Um4jZfpn4Gfku0bvw==","_npmVersion":"10.8.3","description":"TurboLEPCC: fast Esri LEPCC point-cloud decoder for the browser, pure-Rust wasm","directories":{},"maintainers":[{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},{"name":"danrhedges","email":"danrhedges@gmail.com"}],"sideEffects":["./src/index.ts"],"_nodeVersion":"24.3.0","dependencies":{"@bitruvius/geo-core":"^0.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/turbo-lepcc_0.3.3_1790299982880_0.5031706201986679"}}},"time":{"created":"2026-08-03T01:56:02.785Z","modified":"2026-09-25T01:33:03.164Z","0.2.0-alpha.0":"2026-06-12T04:20:03.251Z","0.2.0-alpha.1":"2026-06-12T13:08:27.102Z","0.2.0-alpha.2":"2026-06-12T14:55:06.032Z","0.2.0-alpha.3":"2026-06-17T04:39:39.276Z","0.2.0-alpha.4":"2026-06-18T01:20:39.262Z","0.3.0":"2026-08-03T01:56:03.159Z","0.3.1":"2026-08-03T02:52:01.046Z","0.3.2":"2026-08-05T17:54:48.978Z","0.3.3":"2026-09-25T01:33:02.988Z"},"bugs":{"url":"https://github.com/bitruvius/support"},"license":"SEE LICENSE IN LICENSE","homepage":"https://dev.bitruvius.com/sdks/js/","keywords":["bitruvius","geospatial","webgl2","lepcc","point-cloud","lidar","esri","wasm","decoder"],"description":"TurboLEPCC: fast Esri LEPCC point-cloud decoder for the browser, pure-Rust wasm","maintainers":[{"name":"geoffhtaylor3d","email":"geoffhtaylor3d@gmail.com"},{"name":"danrhedges","email":"danrhedges@gmail.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://bitruvius.com\"><img src=\"https://cdn.bitruvius.com/brand/bitruvius-logo.png\" width=\"360\" alt=\"Bitruvius\"></a>\n</p>\n\n# @bitruvius/turbo-lepcc\n\n**Byte-exact Esri LEPCC decode in the browser, at SIMD speed.**\n\nTurboLEPCC is a memory-safe, SIMD-first encoder and decoder for LEPCC (Esri\nLimited Error Point Cloud Compression), written in Rust with no `unsafe`. It\nholds byte-exact parity with Esri's C++ reference on every test case. This\npackage is the browser build: the decoder alone, compiled to WebAssembly, with\nno emscripten anywhere in the chain.\n\n> **Turbocharged by [Bitruvius TurboLEPCC](https://bitruvius.com/turbo-lepcc).**\n\n## Faster than the C++ reference\n\nBitruvius publishes TurboLEPCC's benchmarks against Esri's `liblepcc`. Every\ndecode kernel it reports, measured on the native SIMD backends:\n\n| Decode kernel | Windows AVX2 | macOS NEON |\n|---|---|---|\n| **Point geometry (XYZ)** | **2.27×** (2.17×–2.36×) | **1.80×** (1.70×–1.89×) |\n| **LiDAR intensity** | **2.28×** (2.01×–2.55×) | **3.33×** (2.56×–4.10×) |\n| **Per-point color (RGB)** | 0.97× | 1.27× |\n\nColor decode is the one that does not beat the reference on AVX2, and it is\npublished without a range. Across the full kernel set, TurboLEPCC wins 10 of 12\non Windows AVX2, where the two exceptions tie within 4%, and 11 of 13 on macOS\nNEON. Against the only other memory-safe LEPCC port it is 34× to 60× faster.\n\nThose are the published AVX2 and NEON figures. This package ships the same Rust\ndecoder compiled to the WASM SIMD128 backend, which is not part of that\npublished benchmark set. What does carry over unchanged is the parity: the bytes\nyou get back match the reference decoder.\n\n## Use it\n\n```ts\nimport { LepccDecoder } from '@bitruvius/turbo-lepcc';\n\nconst decoder = new LepccDecoder();\nconst blob = new Uint8Array(await (await fetch('xyz.lepcc')).arrayBuffer());\nconst xyz = await decoder.decodeXyz(blob); // Float64Array, x/y/z interleaved (3·N)\n```\n\nEvery method takes the raw `Uint8Array` of one blob, not a DOM `Blob`.\n\nLEPCC stores each attribute as its own self-describing blob, so there is no\nsingle `decode()`. Decode the one you hold, or identify an unknown blob first:\n\n```ts\nawait decoder.blobType(blob);        // 'xyz' | 'rgb' | 'intensity' | 'flagBytes'\nawait decoder.decodeRgb(blob);       // Uint8Array,  r/g/b interleaved (3·N)\nawait decoder.decodeIntensity(blob); // Uint16Array, one value per point\nawait decoder.decodeFlagBytes(blob); // Uint8Array,  one LAS flag byte per point\n```\n\nHolding a whole `.lepcc` (LPC1-framed) container rather than one loose attribute\nblob? `LepccContainerDecoder` unpacks it and yields a quantized point tile\nthrough the SDK's streaming `Decoder` contract.\n\nStreaming a native I3S point cloud service instead of loose blobs?\n`LepccI3sPointCloudDecoder` and its worker variant are the decode seam that\n`@bitruvius/i3s` and the MapLibre I3S point cloud layer already use, so you get\nthis decoder there without wiring it up.\n\n## What ships\n\n```sh\nnpm i @bitruvius/turbo-lepcc\n```\n\n**Decode only.** The encoder is not in the `.wasm` and is not part of this\npackage. Encoding lives in the native TurboLEPCC library, published on\nbitruvius.com as a drop-in for Esri `liblepcc` and currently listed as coming\nsoon.\n\nNo peer dependencies. The wasm is vendored and committed, and it resolves next\nto your bundle automatically. In a Web Worker, in Node or Bun, or against a\ncross-origin CDN copy, hand it the bytes instead:\n\n```ts\nconst decoder = new LepccDecoder({ wasmInit: { wasmBytes } });\n```\n\nYour CSP needs `script-src 'wasm-unsafe-eval'`. A self-contained ESM bundle is\nalso on the Bitruvius CDN if you would rather skip the bundler.\n\n## Learn more\n\n- **[Live examples](https://dev.bitruvius.com/bitruvius-sdk-js/examples/)**: running, with source\n- **[Documentation](https://dev.bitruvius.com/sdks/js/)**: guides and the full API reference\n- **[Support](https://github.com/bitruvius/support)**: questions and issues\n- **[TurboLEPCC on bitruvius.com](https://bitruvius.com/turbo-lepcc)**: full benchmarks and format details\n\n## Trademarks\n\nEsri, ArcGIS, I3S and LEPCC are trademarks of Environmental Systems Research\nInstitute, Inc. MapLibre is a trademark of the MapLibre organization. All other\nmarks are the property of their respective owners.\n\nThese names are used solely to describe the data formats this software\ninteroperates with. Bitruvius is not affiliated with, sponsored by, or endorsed\nby any of them, and no such relationship is implied.\n\nTurboLEPCC is an independent implementation of the openly published LEPCC\nformat, developed by Bitruvius and verified against Esri's `liblepcc` reference,\nwhich Esri releases under the Apache 2.0 license. It is neither produced nor\nendorsed by Esri, and byte-exact parity is a measured property of our test\ncorpus rather than any form of certification.\n\n## License\n\nProprietary. The full terms ship as `LICENSE` inside this package, and are readable\nbefore installing at [cdn.bitruvius.com/legal/sdk-license-v1.txt](https://cdn.bitruvius.com/legal/sdk-license-v1.txt).\n\n© Bitruvius, Inc.\n","readmeFilename":"README.md"}