Deterministic bounded-lossy compression SDK for constrained telemetry streams; Rust core with Python bindings
Project description
ZPE-IoT
Deterministic bounded-lossy sensor compression — 6.83x mean vs zstd 2.87x across 10 real public datasets (E1 benchmark, 10/10 wins on DS-01..DS-10; DS-12 is a separate competitor win — see disclosure below). Bounded-lossy vs lossless.
Architecture | API | Benchmarks | Package | Legal
SAL v7.0 — free below $100M annual revenue. See LICENSE.
What This Is
ZPE-IoT is a deterministic sensor compression SDK for constrained telemetry streams. The repo ships a Rust core with PyO3 bindings, an installable Python package, committed benchmark receipts, and the validation scripts used to keep that surface honest.
This README is intentionally narrower than the March audit packet. Claims stay only where this repo has both committed proof artifacts and a CI check that exercises the relevant surface.
CI-Backed Surface
The default CI workflow currently checks:
- Rust tests plus
cargo clippy -D warnings - editable install, wheel build, and Python test matrix on Ubuntu and macOS for CPython 3.10-3.12
- provenance smoke over the committed dataset manifest and transformed artifacts, plus DT-18 strict-gate enforcement
- public benchmark receipt sanity against the committed E1 benchmark summary and receipt index
- security scan plus release-manifest generation scripts
Source workflow: .github/workflows/ci.yml
Public Benchmark Snapshot
Framing disclosure: ZPE-IoT is a bounded-lossy codec. All E1 comparators (zstd, lz4, zlib, gorilla) are lossless — compression-ratio comparisons are informative but not apples-to-apples. DS-12 is the explicit case where the comparator surface wins.
The committed E1 public benchmark surface reports a 10/11 win split for ZPE-IoT across DS-01..DS-10 plus DS-12.
| Slice | Current committed receipt |
|---|---|
| E1 wins | 10 / 11 |
| DS-01..DS-10 mean compression | 6.83x |
| DS-01..DS-10 mean zstd compression | 2.87x |
| DS-12 | competitor win |
| DS-05 | ZPE-IoT win (7.29x) with narrow margin over zlib (7.02x) |
Sources:
validation/results/bench_summary_E1_real_public_20260321T225305.jsonproofs/artifacts/public_benchmarks/INDEX.jsonproofs/artifacts/public_benchmarks/DS-05.jsonproofs/artifacts/public_benchmarks/DS-12.json
Comp Benchmarks vs Prior Art
All comparisons below are drawn from committed E1 receipts run on the same 10 real public datasets (DS-01..DS-10). Baselines are lossless; ZPE-IoT is bounded-lossy. NRMSE is window-normalized. Latency is per-window encode at the native (Rust) layer.
Per-comparator win count (DS-01..DS-10, 10 datasets):
| Comparator | ZPE-IoT wins | ZPE-IoT mean CR | Comparator mean CR |
|---|---|---|---|
| zstd | 10 / 10 | 6.83x | 2.87x |
| lz4 | 10 / 10 | 6.83x | 1.89x |
| zlib | 10 / 10 | 6.83x | 3.00x |
| gorilla | 10 / 10 | 6.83x | 2.46x |
Structural highlight — high-entropy accelerometer (DS-04, UCI HAR body_acc_x):
On high-entropy inertial signals, lossless codecs approach break-even or below, while ZPE-IoT's bounded-lossy design continues to compress:
| Codec | Compression ratio |
|---|---|
| ZPE-IoT | 7.16x |
| zstd | 1.05x |
| lz4 | ~1.00x (break-even) |
| zlib | 1.05x |
| gorilla | 1.04x |
Source: proofs/artifacts/public_benchmarks/DS-04.json + CI job benchmark_sanity in .github/workflows/ci.yml
GPS trajectory (DS-07, UCI GPS Trajectories):
| Codec | Compression ratio |
|---|---|
| ZPE-IoT | 6.98x |
| zstd | 1.37x |
| zlib | 1.37x |
| gorilla | 1.22x |
Source: proofs/artifacts/public_benchmarks/DS-07.json
Per-preset compression ratios (DT-12, committed CI result):
| Preset | Mean CR | Mean NRMSE (window-norm) |
|---|---|---|
| temperature | 8.03x | 0.0074 |
| gps_track | 7.80x | 0.0191 |
| pressure | 7.29x | 0.0041 |
| accelerometer | 7.12x | 0.0397 |
| flow | 8.03x | 0.0074 |
| voltage | 6.60x | 0.0283 |
| current | 6.60x | 0.0283 |
| vibration | 6.40x | 0.0151 |
| generic | 6.24x | 0.0020 |
Source: validation/results/dt_results_20260321T225304.json (DT-12) + CI job strict_dt_smoke
Latency and Throughput
Committed DT-09 result (per-window encode/decode, 256-sample window):
| Layer | Mean latency | p99 latency |
|---|---|---|
| Native (Rust) | 0.031 ms | 0.035 ms |
| Python (PyO3) | 0.723 ms | 0.789 ms |
| Threshold gate | mean < 0.500 ms | p99 < 2.000 ms |
Committed DT-07 result: 10 million samples encoded in 0.30 s (latch-freedom check, no queue buildup).
Sources: validation/results/dt_results_20260321T225304.json (DT-07, DT-09) + CI job strict_dt_smoke
What We Don't Claim
- no universal compressor dominance
- no lossless reconstruction
- no production protocol bridge beyond the published package surface
- no CI-backed claim about live PyPI publication state
- no CI-backed claim that the raw public dataset mirror is present on every clean checkout
Quick Start
Install from source:
git clone https://github.com/Zer0pa/ZPE-IoT zpe-iot
cd zpe-iot
python -m pip install -e './python[dev]'
cargo test --manifest-path core/Cargo.toml --release
python -m pytest python/tests -v
Run the benchmark receipt sanity check:
python validation/benchmarks/export_public_benchmarks.py
Repo Shape
| Area | Purpose |
|---|---|
README.md, pyproject.toml, LICENSE |
repo front door and package metadata |
core/ |
canonical Rust codec kernel and Rust test surface |
python/ |
installable Python package and CLI |
docs/ |
architecture, API, integration, and legal docs |
proofs/ |
committed public benchmark receipts and related proof routing |
validation/ |
datasets, destructive tests, benchmark scripts, and result artifacts |
Docs and Support
| Route | Target |
|---|---|
| Architecture | docs/ARCHITECTURE.md |
| API and CLI | docs/API.md, docs/CLI_CONTRACT.md |
| Benchmark authority | proofs/artifacts/public_benchmarks/INDEX.json |
| Legal boundary | docs/LEGAL_BOUNDARIES.md |
| Integration guidance | docs/INTEGRATION_GUIDE.md |
| Security reporting | SECURITY.md |
Portfolio Position
ZPE-IoT is the constrained-telemetry lane in the Zer0pa ZPE codec portfolio — one of 17 independent domain-specific encoding products, each with its own proof surface, sharing a license but not a shared platform.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zpe_iot-0.1.1.tar.gz.
File metadata
- Download URL: zpe_iot-0.1.1.tar.gz
- Upload date:
- Size: 109.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1da5564f17decb86858f920777ac8d23f4ecfbedf9924237d682dc9182a195bf
|
|
| MD5 |
7e42b647e0b8ae6203999648cc71c704
|
|
| BLAKE2b-256 |
95e4baf02a9ad9f61b26803e0f480e72c82a9d8d3042f066da03267553a565da
|
File details
Details for the file zpe_iot-0.1.1-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: zpe_iot-0.1.1-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 242.3 kB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04e9d07b0f54bf4dbd68890384ada3b3dcf4d8d6e08f15d7018302ea6a79cfbd
|
|
| MD5 |
48a177520f7484cc2a389c51155afcba
|
|
| BLAKE2b-256 |
d0bf74dc5135ecf2ee36f0c6bdb29ee49ef152d382f8fffcba652ebc8ccd75dd
|
File details
Details for the file zpe_iot-0.1.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: zpe_iot-0.1.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 338.0 kB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daba9b499ca415baf326b63630aeec818112d74214727786a01b1366c8cb3ac9
|
|
| MD5 |
3f1fc742e853eadceb9a4424dc398956
|
|
| BLAKE2b-256 |
c167180127ebb1d1f8e45a664dd068091e5318bd1c96efcdb8addefbd4b7dafd
|
File details
Details for the file zpe_iot-0.1.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: zpe_iot-0.1.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 329.5 kB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bc168c19942eccf8c92303c43a0aca0f7f16d2952c5f5943431b0ca53705a6c
|
|
| MD5 |
b96a689175d2e6b8e42e6d3082a7ca32
|
|
| BLAKE2b-256 |
d689360159213d91e6cfa7516c0bc2d679010c84f210df8efed4750f803a55da
|
File details
Details for the file zpe_iot-0.1.1-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: zpe_iot-0.1.1-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 315.6 kB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90db8c97351d44cb371733e06b9b915bbaeb426962b392b53948f5409c9e8d2b
|
|
| MD5 |
55748c93dc7cac718709a9f96cd892aa
|
|
| BLAKE2b-256 |
d0f0c5c6f3ee3b3582f9959ea71f555193644a08641bd807d6e54dea9043a0f7
|