Lossy time series compression: RDP/VW point reduction + quantization
Project description
curvepress
Lossy time series compression -- RDP/VW point reduction + epsilon-derived quantization + varint packing. Designed for sharp transient signals (fracture curves, impulse tests, load cells). One Rust core; four language targets.
Architecture
raw (int64 timestamps_ns + float64 values)
-> point reduction (RDP / VW / RDP-N)
-> quantization (float64 -> uintN, bit-width from epsilon)
-> integer packing (delta + zigzag + LEB128 varint)
-> byte stream
No entropy-coding stage, no external compression dependencies.
+-------------------------+
| Rust core crate | <- ALL logic lives here
| rdp vw quantize |
| varint codec |
+------------+------------+
+--------------+------+-------+------------------+
| | | |
native crate wasm-bindgen PyO3 cbindgen + .hpp
| | | |
(Rust) (WASM) (Python) (C++)
crates.io npm package PyPI wheel Conan package
- Rust -- the core crate; published to crates.io.
- WASM -- via
wasm-bindgen/wasm-pack. Direct Rust->WASM, no C ABI. - Python -- via
PyO3+maturin. Direct Rust->CPython, no C ABI. - C++ --
cbindgenauto-generatesinclude/curvepress.hfromsrc/capi.rs.cpp/include/curvepress/curvepress.hppwraps it with idiomatic C++20 (std::span, exceptions).
Algorithms
RDP (Ramer-Douglas-Peucker)
Recursively removes the point with the smallest perpendicular distance to the line between
its neighbours, as long as that distance is below epsilon. Guarantees that every dropped
point deviates at most epsilon from the piecewise-linear reconstruction.
- Input:
epsilon(maximum absolute error in the value domain) - Output: variable number of kept points
- Complexity: O(n log n) average, O(n^2) worst case
- Use when: you need a strict error bound
VW (Visvalingam-Whyatt)
Iteratively removes the point that forms the triangle with the smallest area with its two
neighbours. Repeats until exactly n_out points remain.
- Input:
n_out(exact number of output points) - Output: exactly
n_outpoints - Complexity: O(n log n)
- Use when: you need a fixed output size (e.g. display resolution, storage budget)
- The quantization epsilon is derived automatically from the actual max deviation of dropped points, so no epsilon needs to be specified
RDP-N
Binary-searches for the smallest epsilon that makes RDP keep at most n_out points.
Combines the error-bound guarantee of RDP with a target output size.
- Input:
n_out(target maximum),epsilon(upper bound for the search) - Output: at most
n_outpoints - Complexity: O(n log n * log(epsilon_range))
- Use when: you want both an error bound AND a size cap
Axis normalization
Timestamps are in nanoseconds; values might be Newtons or millistrain. Without normalization
the time axis completely dominates Euclidean distances. curvepress always normalizes: the
time axis is scaled to match the value range before distance computation.
epsilon is therefore always expressed in the value domain.
Error-bound contract
max_error <= ~1.5 * epsilon
| Algo | epsilon source |
|---|---|
| RDP | user-supplied |
| VW | measured max deviation of dropped points (automatic) |
| RDP-N | measured max deviation of dropped points (automatic) |
The 0.5x overhead comes from quantization (float64 -> integer grid at spacing epsilon).
API reference
All four language bindings expose the same six functions plus decompress, interpolate,
and version.
compress_rdp
Compress with RDP. epsilon is the maximum absolute error in the value domain.
| Language | Signature |
|---|---|
| Rust | compress_rdp(ts: &[i64], val: &[f64], epsilon: f64) -> Result<Vec<u8>> |
| Rust | compress_rdp_stats(ts, val, epsilon) -> Result<(Vec<u8>, Stats)> |
| Python | compress_rdp(timestamps, values, epsilon) -> bytes |
| Python | compress_rdp_stats(timestamps, values, epsilon) -> tuple[bytes, Stats] |
| C++ | compress_rdp(span<i64>, span<f64>, epsilon, Stats* = nullptr) -> vector<uint8_t> |
| WASM | compress_rdp(BigInt64Array, Float64Array, number) -> Uint8Array |
compress_vw
Compress with Visvalingam-Whyatt. n_out is the exact number of kept points.
| Language | Signature |
|---|---|
| Rust | compress_vw(ts: &[i64], val: &[f64], n_out: usize) -> Result<Vec<u8>> |
| Rust | compress_vw_stats(ts, val, n_out) -> Result<(Vec<u8>, Stats)> |
| Python | compress_vw(timestamps, values, n_out) -> bytes |
| Python | compress_vw_stats(timestamps, values, n_out) -> tuple[bytes, Stats] |
| C++ | compress_vw(span<i64>, span<f64>, n_out, Stats* = nullptr) -> vector<uint8_t> |
| WASM | compress_vw(BigInt64Array, Float64Array, number) -> Uint8Array |
compress_rdpn
Compress with RDP-N. Keeps at most n_out points; epsilon is the search upper bound.
| Language | Signature |
|---|---|
| Rust | compress_rdpn(ts: &[i64], val: &[f64], n_out: usize, epsilon: f64) -> Result<Vec<u8>> |
| Rust | compress_rdpn_stats(ts, val, n_out, epsilon) -> Result<(Vec<u8>, Stats)> |
| Python | compress_rdpn(timestamps, values, n_out, epsilon) -> bytes |
| Python | compress_rdpn_stats(timestamps, values, n_out, epsilon) -> tuple[bytes, Stats] |
| C++ | compress_rdpn(span<i64>, span<f64>, n_out, epsilon, Stats* = nullptr) -> vector<uint8_t> |
| WASM | compress_rdpn(BigInt64Array, Float64Array, number, number) -> Uint8Array |
decompress
Decompress a byte stream produced by any compress_* function.
| Language | Signature |
|---|---|
| Rust | decompress(data: &[u8]) -> Result<(Vec<i64>, Vec<f64>)> |
| Python | decompress(data: bytes) -> tuple[ndarray, ndarray] |
| C++ | decompress(span<uint8_t>) -> Decoded (Decoded.timestamps_ns, Decoded.values) |
| WASM | decompress(Uint8Array) -> Decoded (Decoded.timestamps, Decoded.values, Decoded.len) |
interpolate
Reconstruct the value at a single timestamp t by linear interpolation of the support
points. Clamps (flat extrapolation) outside the data range.
| Language | Signature |
|---|---|
| Rust | interpolate(ts: &[i64], val: &[f64], t: i64) -> Result<f64> |
| Python | interpolate(timestamps, values, t: int) -> float |
| C++ | interpolate(span<i64>, span<f64>, t: int64_t) -> double |
| WASM | interpolate(BigInt64Array, Float64Array, t: bigint) -> number |
Stats
Returned by the *_stats variants. Contains:
| Field | Type | Description |
|---|---|---|
n_input |
usize | Number of input points |
n_kept |
usize | Number of points after reduction |
bytes_raw |
usize | Raw size (16 bytes per point) |
bytes_compressed |
usize | Compressed byte stream length |
ratio |
f64 | bytes_raw / bytes_compressed |
max_error |
f64 | Maximum value-domain error of dropped points |
quant_bits |
u32 | Quantization bit-width used |
Installation
Python (PyPI)
pip install curvepress
Pre-built wheels for CPython 3.9–3.14 on Linux, macOS (Apple Silicon) and
Windows — no Rust toolchain needed. Pulls in numpy.
JavaScript / TypeScript (npm)
npm install curvepress
A pre-built WebAssembly package, usable from bundlers (webpack/Vite/Rollup) and Node.js ≥ 18.
Rust (crates.io)
cargo add curvepress
C++ (Conan — local recipe)
curvepress is a Rust library, so it is not on ConanCenter. Build the package locally from the cloned repo (needs a Rust toolchain + a C++ compiler); the binary lands in your local Conan cache:
git clone https://github.com/fsbondtec/curvepress
cd curvepress
conan create . --version 0.1.0
Then consume it from your project:
conan install --requires=curvepress/0.1.0
find_package(curvepress CONFIG REQUIRED)
target_link_libraries(my_target PRIVATE curvepress::curvepress)
C++ from source (without Conan)
Build the Rust static library — this also generates the C header:
cargo build --release --features capi
# -> target/release/libcurvepress.a (curvepress.lib on Windows)
# -> include/curvepress.h (generated by cbindgen)
Add both header directories (include/ and cpp/include/) to your include
path and link the static library plus its system dependencies:
| Platform | Link flags |
|---|---|
| Linux | -Ltarget/release -lcurvepress -lpthread -ldl -lm |
| macOS | -Ltarget/release -lcurvepress -framework Security -framework CoreFoundation |
| Windows | curvepress.lib ws2_32.lib userenv.lib ntdll.lib bcrypt.lib |
Or build via the bundled CMake project, which exposes the
curvepress::curvepress target:
cmake -S cpp -B cpp/build -DCMAKE_BUILD_TYPE=Release
cmake --build cpp/build --config Release
Quick start
Rust
use curvepress::{compress_rdp, compress_vw, compress_rdpn, decompress, interpolate};
// RDP: strict error bound
let data = compress_rdp(×tamps_ns, &values, 1.0)?;
// VW: exact output size
let data = compress_vw(×tamps_ns, &values, 200)?;
// RDP-N: at most 200 points, search up to epsilon=100.0
let data = compress_rdpn(×tamps_ns, &values, 200, 100.0)?;
// Decompress
let (ts_out, val_out) = decompress(&data)?;
// Interpolate at a single timestamp
let v = interpolate(&ts_out, &val_out, 5_000_000_000_i64)?;
C++ (CMake)
find_package(curvepress REQUIRED)
target_link_libraries(my_target PRIVATE curvepress::curvepress)
#include <curvepress/curvepress.hpp>
// RDP
auto data = curvepress::compress_rdp(ts, val, 1.0);
// VW
auto data = curvepress::compress_vw(ts, val, 200);
// RDP-N
auto data = curvepress::compress_rdpn(ts, val, 200, 100.0);
// Decompress
auto dec = curvepress::decompress(data);
// dec.timestamps_ns, dec.values
// Interpolate
double v = curvepress::interpolate(dec.timestamps_ns, dec.values, 5'000'000'000LL);
Python
import numpy as np
from curvepress import compress_rdp, compress_vw, compress_rdpn, decompress, interpolate
ts = np.arange(10_000, dtype=np.int64) * 1_000_000 # ns
val = np.sin(np.arange(10_000) * 0.01) * 100.0
# RDP
data = compress_rdp(ts, val, epsilon=0.5)
# VW
data = compress_vw(ts, val, n_out=200)
# RDP-N
data = compress_rdpn(ts, val, n_out=200, epsilon=100.0)
# Decompress
ts_out, val_out = decompress(data)
print(f"Kept {len(ts_out)} of {len(ts)} points")
# Interpolate
v = interpolate(ts_out, val_out, t=5_000_000)
WASM (JavaScript/TypeScript)
import { compress_rdp, compress_vw, compress_rdpn, decompress, interpolate } from 'curvepress';
const ts = new BigInt64Array(n); // fill with ns timestamps
const val = new Float64Array(n); // fill with values
// RDP
const data = compress_rdp(ts, val, 1.0);
// VW
const data = compress_vw(ts, val, 200);
// RDP-N
const data = compress_rdpn(ts, val, 200, 100.0);
// Decompress
const dec = decompress(data);
console.log(`Kept ${dec.len} of ${n} points`);
// Interpolate
const v = interpolate(dec.timestamps, dec.values, 5_000_000_000n);
Benchmark (fracture-curve data, 100 k points)
| Algo | Ratio | Throughput | max_error |
|---|---|---|---|
| RDP epsilon=0.5 | ~18x | ~120 MB/s | <=0.75 |
| VW n=1000 | ~23x | ~80 MB/s | informative |
(Run cargo bench on your hardware for accurate numbers.)
Building
# Rust tests
cargo test
# C++ (requires Catch2 v3)
cargo build --release --features capi
cmake -S cpp -B cpp/build && cmake --build cpp/build && ctest --test-dir cpp/build
# Python wheel (requires maturin)
maturin develop --features python
pytest tests/python/ -v
# WASM (requires wasm-pack)
wasm-pack build --target nodejs --out-dir pkg --features wasm
node tests/wasm/test_wasm.mjs
License
MIT
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 curvepress-0.1.0.tar.gz.
File metadata
- Download URL: curvepress-0.1.0.tar.gz
- Upload date:
- Size: 46.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37735fb8b0a2a8bd6fae9925014a7d0e3cb1450f12c39c3b5134eaf7c5a00f55
|
|
| MD5 |
4dca7142e8de0b6d456c6f251d2fbe82
|
|
| BLAKE2b-256 |
8ddfa4affc2085973e3ecb9ccd39f1dd8bd4aaa1292a71fb2574b5e814787aef
|
File details
Details for the file curvepress-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 530.3 kB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
536d1647a84f21df5446acb68b142788a04df605d2af9607f6fbfb00bd8463aa
|
|
| MD5 |
1b979ceb5435b53164d0bce932a3c637
|
|
| BLAKE2b-256 |
51cc1f7742798e4132c26fab5ffa481bafc76f9740095348beda81fef7965671
|
File details
Details for the file curvepress-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 495.8 kB
- Tags: CPython 3.14, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bec6e903adeee587cabdef933037669cfdf0c613ffc1fbe093d5138d02b63be5
|
|
| MD5 |
42ccdfb47d1e8e7c775ae9b3b690c233
|
|
| BLAKE2b-256 |
c36f82019344fecea15b44863f4ee9dbd6bf1838de4547b95066eb0ec96dab50
|
File details
Details for the file curvepress-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 327.6 kB
- Tags: CPython 3.14, 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 |
d4c885f70362620a10bd602fb5a5ff23b0c065ce559aaaa30fefb282fda9cfc6
|
|
| MD5 |
16ba7d22ce357419ede4edde8da516fa
|
|
| BLAKE2b-256 |
f4b99e40d8cb409e1dd786c0ba6dc22cf1faaaad1850ec24ddc2f0426b233ce8
|
File details
Details for the file curvepress-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 320.2 kB
- Tags: CPython 3.14, 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 |
7852c2738a273c08429977b1a7759f5b0f41a1a2927c904dab34e3dddc83ec7e
|
|
| MD5 |
05a380a443a9c60acba6a2e8690d81e5
|
|
| BLAKE2b-256 |
32c4a00daf2fb0fec1f72d5d78479126e2fdd0be040751f50e56f0820301b1cc
|
File details
Details for the file curvepress-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 288.8 kB
- Tags: CPython 3.14, 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 |
da773dbafd4161502101c3f444e891225b5f8823bba730891914975b15871a9e
|
|
| MD5 |
d82ff5049afa9297274503814ed4dfd3
|
|
| BLAKE2b-256 |
bf1b1ca24e4020834050677f2f8579d91438d49fc338b8f7ccab32ceec0deb63
|
File details
Details for the file curvepress-0.1.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 179.8 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dbe9cdc56212974eb307f110675bc833a3965918d660eac4cd96b83ec08ee7c
|
|
| MD5 |
90e191258e5fc3ae0a43ba90260af5f0
|
|
| BLAKE2b-256 |
37c3e4d9445bbcdb578477e173e07f017c946e8f4cec4c1e087f16e9584cd61f
|
File details
Details for the file curvepress-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 529.1 kB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
566acdef05dcaea2531d27a63a6e36d207ad5bf32a4600ff6683d0888858ed40
|
|
| MD5 |
cc2f237c036c0145c42a446b0c90160f
|
|
| BLAKE2b-256 |
0737ea3bb29ef789fc978eb49dce92f17014bb4f8a8c84c82d652e4b57648417
|
File details
Details for the file curvepress-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 495.0 kB
- Tags: CPython 3.13, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29a286de26150fd8f5686fa830c2512730cd6ccb7e782db4fb6b64038a1aad75
|
|
| MD5 |
2c1d85eabc7ef4ef4da6b40a0c7f1620
|
|
| BLAKE2b-256 |
8bd5830c109047640a86df3c77c04a228bcea98df9820a9bcfa824977bc6541f
|
File details
Details for the file curvepress-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 326.6 kB
- Tags: CPython 3.13, 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 |
f77dd51f8cd26900af6e5393332c8f5fdddc846b2b7be1d4fabd074ac3feeefe
|
|
| MD5 |
1df79f2fea77c4955c116e188a7f0616
|
|
| BLAKE2b-256 |
3cd922ca4cc353fdce9497c3e8f5eafc4b4af806b4244f2f273cc90340db0eb0
|
File details
Details for the file curvepress-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 319.5 kB
- Tags: CPython 3.13, 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 |
419cda5cd36261819a9c16201e949e8f8536aafd0d01f56cbb821b7d2878c9b3
|
|
| MD5 |
8ef094b2ef5726a1f0dea2e39e708f2f
|
|
| BLAKE2b-256 |
43bb71d9d32ce130784f9a7694b127b10d485beaa21be3173c51dbb3bc58057a
|
File details
Details for the file curvepress-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 287.6 kB
- Tags: CPython 3.13, 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 |
f67e736af40dfcb05924b517fad3621c841d7fd1e5722b20a730c3ba9d0a845e
|
|
| MD5 |
e7c7ec5bac63e025b656af1e3ea42a4b
|
|
| BLAKE2b-256 |
3e57ae0e7d3dfe0c073f1d88ae91bfb14b8fa30c7dcd2a9ed67670a6d762d434
|
File details
Details for the file curvepress-0.1.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 180.2 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d300a469318388e5d870e3428c279666f69c2c97ac72b17d20e6cd87edd83e3
|
|
| MD5 |
94c458f86d92bdb7936b1aec87ee33d5
|
|
| BLAKE2b-256 |
debb11885aaedaea1e984569da63728d8e16dc2635361f71048c7e6458a6c034
|
File details
Details for the file curvepress-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 529.3 kB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ed3bd9f328c1838e79f6cbaa6c040dca9f326a5746b0b5a0f7ce0b0295e6e8f
|
|
| MD5 |
7e43a073dcb72a9ce9305506b75edf5b
|
|
| BLAKE2b-256 |
cb15646f80bc3aac950639225760ac3b56b2b22a90305c3b9655260e1cffedd3
|
File details
Details for the file curvepress-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 494.9 kB
- Tags: CPython 3.12, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95a6428d10923e1f5de65b0331dce611eceb7f576cb0c7cb51073026f9a3b568
|
|
| MD5 |
9f3c90fd1fe5db1c49946c5b45535b03
|
|
| BLAKE2b-256 |
8d707e21c9942ee9e80a2fcb52a7133b12dca3d248acb8baeb486d3cf51be79f
|
File details
Details for the file curvepress-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 327.0 kB
- Tags: CPython 3.12, 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 |
007b45179e410c03498bc38f69119452ae03be38dc0cfd8fa0fed6d18af3eb73
|
|
| MD5 |
e8353a3deeb1849788fb8d0baa2b6221
|
|
| BLAKE2b-256 |
3993a47b7e04634e6b75328e4407dc8dcfddf45745d0b30a20e5d78f0e6d0258
|
File details
Details for the file curvepress-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 319.4 kB
- Tags: CPython 3.12, 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 |
d821b5e40202766430ee4653524eab65afc774028bb680bdfff36317fbf0db3e
|
|
| MD5 |
d4786149c94a7b5c6e824601a65ebdf2
|
|
| BLAKE2b-256 |
73a896f6c651b893bed4a9f89e5069d3df895d23698b2ac9c42bb2e1a56bcb1f
|
File details
Details for the file curvepress-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 287.6 kB
- Tags: CPython 3.12, 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 |
3b64d4d8d0fc8fa07ad48e48ca7934f1c943c005edf4a41c5c9e125821382c32
|
|
| MD5 |
d9f82175affbcc60f0061c4f897d336f
|
|
| BLAKE2b-256 |
d3c35c50c24643722c87ab2ba9c8527e2f0fd2b0ed415641dc5d61a15443555b
|
File details
Details for the file curvepress-0.1.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 182.8 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfda37fbb3e64b8355de5b4e3cb5a98e2d70cd5ec773c9b52d52587d5ad7375d
|
|
| MD5 |
f5e2da9ce7f0f261f17628bd6171a243
|
|
| BLAKE2b-256 |
893e5110cf58b3f3d8591e66ec5fccaf34c53ac4a0c7f02a29b212931fea08ec
|
File details
Details for the file curvepress-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 534.0 kB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdf57aea5b1213ebc5a38b66ddd80785cdb5313ba329aa0cc909d21395bba9b4
|
|
| MD5 |
001a2859926c41ad3ffcd888201affbf
|
|
| BLAKE2b-256 |
4c1fe66982ec76b5ac63230aab27218423b074006c093f2cc0c84511f0566489
|
File details
Details for the file curvepress-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 499.6 kB
- Tags: CPython 3.11, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2abb6acf91c07bf92b6521505a245d217d9e97c4d582759523dca700a33f7d74
|
|
| MD5 |
7e3acd951ee97e442c2555d62a73c0ae
|
|
| BLAKE2b-256 |
d2894073c412ca04d58c2a13993417bfc9af30674dd072fb8310af86eaa6b780
|
File details
Details for the file curvepress-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 331.5 kB
- Tags: CPython 3.11, 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 |
31d0674509f398243e61a1cbb9c0de9bf1a720cb3e8d90f6c41c541c45604084
|
|
| MD5 |
8b2286ab55cc32f2fe2f463cdf6f84cd
|
|
| BLAKE2b-256 |
e815c79638e4998de113f81e2420c3cf4eb6cc512b94b9d0cf7912165f288890
|
File details
Details for the file curvepress-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 323.9 kB
- Tags: CPython 3.11, 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 |
f1fa8540dde18cad5a4f2ce5abf8eb8d11261c73a1c4a4f7b386e6e7759f66a6
|
|
| MD5 |
6d511a2b675e2a710253a21692279f36
|
|
| BLAKE2b-256 |
42654c048d24d134692b045ddbe5262b0578cc63ca6f9feb682a6ada55276083
|
File details
Details for the file curvepress-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 293.1 kB
- Tags: CPython 3.11, 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 |
a15d10e04d73b85a51a1f01a5a4da652b97cf6113924c0f8ce1078625db4a80f
|
|
| MD5 |
578dcc2337c2f622cddc325000f578a1
|
|
| BLAKE2b-256 |
acb03677d1f73e312860c29d9040f9edffeb206d5926240723987ca99709ff79
|
File details
Details for the file curvepress-0.1.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 183.0 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 |
b1fd55db80119b31eeabe0b66afc50517d379b813b25d01416d436709512ac1e
|
|
| MD5 |
3970092cfc2cca7d88235336dbfb01ae
|
|
| BLAKE2b-256 |
cb5c6d768ede5bb54fcfb46c34e3d5f8cd73a68d552dd306f45a0560d7ed1133
|
File details
Details for the file curvepress-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 534.2 kB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea8e5bc82948ed9e403bbe6ce4035e721438db852405bceed8cd46628afbaa80
|
|
| MD5 |
57fd2625f7c06a92735821ec518a14b3
|
|
| BLAKE2b-256 |
7299cee838757725d8736c47bf1dc82dcecbeae31eddea065054ca056dd8c931
|
File details
Details for the file curvepress-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 500.4 kB
- Tags: CPython 3.10, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97b7cd29b95deb958f95ab35fb4c5d9a86cca0f6902ee8eb0e22009b73159bd8
|
|
| MD5 |
7faea35640d6e4b5e1de0ca5ce2bab13
|
|
| BLAKE2b-256 |
6728beadb0ef21e41988f7759dcb9433fc7b0ae90dc6e292f4eacc6f4bcdfc8f
|
File details
Details for the file curvepress-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 332.1 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 |
ee021750b46d921a6c7d92f2812a0610de00eff6305bfa51eb348e34b84d4c7d
|
|
| MD5 |
d60a710685fb68516b8e3d2bd3a67d81
|
|
| BLAKE2b-256 |
280dbbeed4ee36ae584ccaa02da38640d7c50cbfdc635cf34bc4e63157368613
|
File details
Details for the file curvepress-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 324.6 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 |
049884f3c4a70e795ab5a84a8c5bf1e674577d6c0903ccabcae3b7e5ef41435c
|
|
| MD5 |
d0adf6a3c983f3df4cb659fd2784074f
|
|
| BLAKE2b-256 |
9a42ccc8c2de9dc3eecccb6dabba755ff3ee005e867dda261713e80e6e6b7f0b
|
File details
Details for the file curvepress-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 293.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 |
3c192156802e4258ebecfba18e0833409204708a1889d17d1140516de87fca06
|
|
| MD5 |
cd3757ecd837da461f333d52c4b825ca
|
|
| BLAKE2b-256 |
c0040969a64b898ead499b091cffae70f95d47c3bc8224dbd1afa467a3049d12
|
File details
Details for the file curvepress-0.1.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 186.0 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73b3dfc9eebe005a1cbce5dea9be42bd1a2ce6b49c7d125a5910123c3fcbb382
|
|
| MD5 |
f46230dad9ed98ebfe90c02cd60aa667
|
|
| BLAKE2b-256 |
5023370cc56cd06f82dc0ed7db7fd8341a35e39e64147f98a666919a8fcab0ac
|
File details
Details for the file curvepress-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 537.9 kB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b49600c2e2a1fee5c25a9ef66d7003e979ae4e3f36e8d7d6ecdbf28b27cbaad7
|
|
| MD5 |
b1ba06bb45d3c6592f5de3b34d873f39
|
|
| BLAKE2b-256 |
cfbd5f95f635a4467f05488ff33dae0f21aab1e1b989df964034f77917ac7c90
|
File details
Details for the file curvepress-0.1.0-cp39-cp39-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp39-cp39-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 503.8 kB
- Tags: CPython 3.9, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da0d872c77ef1f2bb1566d1a237d4b3f0e54a3858c78f26ed18c44f8bfba3742
|
|
| MD5 |
8df48f29b305aedf7be7db01282dafe3
|
|
| BLAKE2b-256 |
c9f0241178bdb9654b8f8a4bfa1a0238c3cb199cff2a16f4e6a827eb5d038537
|
File details
Details for the file curvepress-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 336.5 kB
- Tags: CPython 3.9, 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 |
9ab9533908629b64ec2b972d099d4190d20727f33ee6f5584e354d70fb58b32f
|
|
| MD5 |
39179d71e3bf829521f8d54899115c18
|
|
| BLAKE2b-256 |
9c0bc4b5db26cf83ffc4aa6dce22bb815351ae91130590ae23ddbf269e0aa3e5
|
File details
Details for the file curvepress-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: curvepress-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 328.9 kB
- Tags: CPython 3.9, 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 |
3ee761aee0da91c054aa409b2c0b086e53ff093a789baae4adebf4345d6d67ed
|
|
| MD5 |
e2a5c0ab00bfe20b980b9b0dd9c52b22
|
|
| BLAKE2b-256 |
05e5b439d132314348e717783cf56d01f8e9126b942a4d4ead7348816cfa3e41
|