2 releases
Uses new Rust 2024
| 0.1.1 | Mar 18, 2026 |
|---|---|
| 0.1.0 | Mar 18, 2026 |
#631 in Compression
155KB
3.5K
SLoC
lepcc-ffi
Rust bindings for Esri's LEPCC (Limited Error Point Cloud Compression) library.
LEPCC is the codec behind I3S PointCloud layers. When you fetch a geometry or attribute blob from a lepcc-xyz, lepcc-rgb, or lepcc-intensity resource, this is what decodes it.
Usage
use lepcc_ffi::Context;
// XYZ positions
let ctx = Context::new();
let points: Vec<[f64; 3]> = ctx.decode_xyz(&blob)?;
// RGB colors
let ctx = Context::new();
let colors: Vec<[u8; 3]> = ctx.decode_rgb(&blob)?;
// Intensity
let ctx = Context::new();
let intensity: Vec<u16> = ctx.decode_intensity(&blob)?;
The Context handles the underlying C allocation and frees it on drop.
Building
The crate compiles the LEPCC C++ sources directly via the cc crate, so you just need a C++ compiler on your PATH — no separate install of the LEPCC library required.
git clone --recurse-submodules https://github.com/calebbuffa/lepcc-rs
cd lepcc-rs
cargo build
License
Apache-2.0 — same as the bundled LEPCC library. See extern/lepcc/LICENSE.TXT.
Dependencies
~110–700KB
~15K SLoC