lepcc-ffi 0.1.1

Safe Rust bindings for the Esri LEPCC point-cloud compression library (XYZ, RGB, Intensity, FlagBytes)
Documentation
  • Coverage
  • 81.25%
    13 out of 16 items documented1 out of 13 items with examples
  • Size
  • Source code size: 233.46 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 598.26 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 44s Average build duration of successful builds.
  • all releases: 44s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • calebbuffa/lepcc-rs
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • calebbuffa

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.