Skip to main content

pureini

CloudINI-compatible point-cloud compression for Python, implemented as a Rust/PyO3 extension.

  • Reads CloudINI V2, V3, V4, and V5 payloads.
  • Writes the current V5 format by default, with V2-V4 output available through EncodingInfo.version.
  • Supports no second-stage compression, LZ4, and Zstandard.
  • Has no Python runtime dependencies and does not require NumPy, Numba, or LLVM.
  • Uses Python's stable ABI for CPython 3.10 and newer.
import pureini

info = pureini.EncodingInfo(
    width=1,
    height=1,
    point_step=4,
    fields=[
        pureini.PointField(
            name="x",
            offset=0,
            type=pureini.FieldType.FLOAT32,
            resolution=0.001,
        )
    ],
)

encoded = pureini.PointcloudEncoder(info).encode(b"\0\0\0\0")
decoded, decoded_info = pureini.PointcloudDecoder().decode(encoded)

The public API is deliberately limited to PointField, EncodingInfo, FieldType, EncodingOptions, CompressionOption, PointcloudEncoder, and PointcloudDecoder. Wire-format primitives and header helpers are internal.

Point-cloud cleanup can be fused into the native encode call. This removes invalid XYZ returns, stably groups retained points by a discrete field, and returns the updated layout together with the payload:

encoded, output_point_count, did_filter_invalid_xyz = pureini.PointcloudEncoder(info).encode(
    cloud_data,
    drop_invalid=True,
    sort_field="line",
    return_metadata=True,
)

return_metadata=True opts into the tuple result. Without it, encode returns bytes directly even when preprocessing is enabled. output_point_count is None when preprocessing leaves the input layout unchanged. point_step never changes, and transformed clouds are one row high.

Source point data is little-endian by default. Pass is_bigendian=True to normalize big-endian fields in Rust before preprocessing or encoding.

Native preprocessing is opt-in and releases the GIL; larger counting-sort workloads run in parallel.

Add it to a project with uv add pureini.

Distribution

Release artifacts use CPython's stable ABI and cover Python 3.10 and newer:

  • manylinux and musllinux wheels for x86-64 and AArch64;
  • macOS wheels for Intel and Apple Silicon;
  • Windows x86-64 wheels;
  • a source distribution containing the complete Rust crate.

CI tests native wheels on CPython 3.10 and 3.14 and independently rebuilds and tests the source distribution.

Benchmarking

Benchmark a release wheel rather than the editable debug build:

uv build --package pureini --out-dir dist
uv run --isolated --no-project --with dist/pureini-0.8.0-*.whl \
  python pureini/benchmarks/benchmark_matrix.py

The matrix uses warmed median timings for structured and random integers, lossy and lossless XYZ, LZ4, Zstandard, and mixed LiDAR fields. Adjust --points, --iterations, and --warmups for the target machine.

Compare the fused Rust preprocessing path against the previous warmed Numba pipeline and require a material win:

uv run --with numba python pureini/benchmarks/benchmark_preprocessing.py \
  --points 500000 --iterations 30 --warmups 8 --minimum-speedup 1.25

The benchmark validates decoded bytes and layout before timing. Its default fixture contains 20% invalid XYZ placeholders and 128 interleaved line groups.

Metadata

Release files for pureini 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pureini 0.10.0
File Size Uploaded Provenance Actions
pureini-0.10.0.tar.gz 40.4 kB Without provenance Details for pureini-0.10.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pureini 0.10.0
File Actions
pureini-0.10.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for pureini-0.10.0-cp310-abi3-win_amd64.whl
pureini-0.10.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details for pureini-0.10.0-cp310-abi3-musllinux_1_2_x86_64.whl
pureini-0.10.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details for pureini-0.10.0-cp310-abi3-musllinux_1_2_aarch64.whl
pureini-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for pureini-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pureini-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for pureini-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pureini-0.10.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for pureini-0.10.0-cp310-abi3-macosx_11_0_arm64.whl
pureini-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for pureini-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl

Total release size: 5.5 MB

Release files / pureini-0.10.0.tar.gz

Download URL pureini-0.10.0.tar.gz
Size 40.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d1f9d9a780868a0332373603dcf388319f534247a01363a67e681886946f3865
BLAKE2b-256 checksum
How to use checksums
7d5afe5b345d83da9c6c6e89778f457890c203e06ae1cc72b9479e767dbef81f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pureini-0.10.0-cp310-abi3-win_amd64.whl

Download URL pureini-0.10.0-cp310-abi3-win_amd64.whl
Size 562.9 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
3b6365ad40315d88f07f7f1afa01640f31e844169423de7a335459bc6a3ef548
BLAKE2b-256 checksum
How to use checksums
13204c4cf2ab83ae3099ad3d9234bf777b80db1b1e5e083ad8680b4621d340a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pureini-0.10.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL pureini-0.10.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 1.0 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
c96127faa699692f5e08f2d9df3315431cb4582eeb9ea58da15d2cb71f5826e5
BLAKE2b-256 checksum
How to use checksums
125509030131542a239ac3993d337f4b87311a3e320948245a23201cdaee5cc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pureini-0.10.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL pureini-0.10.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 950.7 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
5f78a322fd034eb5566d8d7899b7ab4bc0d43f4c72f68dcdba17fc0931bf569b
BLAKE2b-256 checksum
How to use checksums
a6e0b3a0d3ae8f97b85a8759136044649f7c65507d46c602827775d3eb3dfb00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pureini-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pureini-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 821.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
8bcca3e1298949d686253b132468d423977e9bbf061f2cbe01fd5e3b937b0eaa
BLAKE2b-256 checksum
How to use checksums
b41ec7d4dab9a854d19b5919a8136da65b9f8a9314e57a1a53a6f4eb98568d5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pureini-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pureini-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 737.5 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
ff320a883f2bf7e6e37a9064cc3ce88dbd2e603c5ada39065da95918e0597986
BLAKE2b-256 checksum
How to use checksums
67364efd19beee38d1538e64242a551a53049b383de3a6261e3202f27a1cef8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pureini-0.10.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL pureini-0.10.0-cp310-abi3-macosx_11_0_arm64.whl
Size 636.3 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
69b21dffd1388d26fdf7260ba3da6c0bf0f94a98bd70806a156ab2783e663bf9
BLAKE2b-256 checksum
How to use checksums
470f120d7dd81948f9c120e5fa1ce178530281160be459a7d9105c4ee887415a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pureini-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL pureini-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 725.1 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
46cdf6cb9c1f038f262f6a8f0c8b9f80268e0305b3d50383462142161753e1b5
BLAKE2b-256 checksum
How to use checksums
4ecb299ca6d9491867c48eae6167f8215d971ade5512bd3e21ff2745dc97bfe4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for pureini 0.10.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page