Skip to main content

OxVox - Oxidised Voxelised toolkit

PyPI Actions Status

A collection of operations on arrays and pointclouds implemented in Rust

Requires Python 3.10 or newer.

Installation

pip install oxvox

Manual

Checkout this repo and enter a virtual environment, then run

maturin develop --release

Usage

Indexing by field

In [7]: from oxvox.indexing import indices_by_field
   ...: 
   ...: TEST_ARRAY = np.array(
   ...:     [
   ...:         (2, "a"),
   ...:         (3, "b"),
   ...:         (2, "a"),
   ...:         (3, "c"),
   ...:         (4, "a"),
   ...:         (4, "c"),
   ...:     ],
   ...:     dtype=[
   ...:         ("score", np.int32),
   ...:         ("initial", "|O"),
   ...:     ],
   ...: )
   ...: 
   ...: for row_values, row_indices in indices_by_field(arr=TEST_ARRAY, fields=["score"]):
   ...:     print(f"Unique value: {row_values.tolist()} at row indices {row_indices}")
   ...: 
Unique value: (2,) at row indices [0 2]
Unique value: (3,) at row indices [1 3]
Unique value: (4,) at row indices [4 5]

Nearest Neighbour Search (NNS)

OxVoxNNS builds a spatial index over search_points and answers radius-bounded k-nearest-neighbour queries against it. Construct one OxVoxNNS per pointcloud and reuse it for as many queries as needed (e.g. to query in batches, or to distribute the object across processes: it pickles).

Several indices are available via the method argument. If you have no reason to choose, use method="auto", which picks the one the benchmark says wins most often:

  • "kdtree": a bucketed KD-tree (median splits on the widest axis, 16-point leaves). The fastest oxvox backend at most of the benchmark's grid points, on every cloud shape measured, and what "auto" chooses.
  • "voxel" (the historical default): a uniform grid of cells of side search_radius / cells_per_radius, stored sorted by cell so each cell is one contiguous slice. A query scans only the cells that could hold a neighbour, skipping any whose bounding box is already farther away than its current best candidate. Its cost per query is governed by local density rather than by the shape of the cloud, which is why it exists, but the benchmark does not support the conclusion that this wins: it is a median 1.6x slower than the KD-tree, and on a dense real scan searched at 20 cm (about 40 000 points per sphere) it is up to 178x slower, because every query then scans tens of thousands of candidates linearly.
  • "hybrid": the voxel grid, with a KD subtree inside every cell that holds more than subtree_threshold points (default 64). Dense cells are searched in logarithmic rather than linear time, which does remove the grid's collapse on dense data (10.6 s to 1.8 s on that same scan) without ever beating the plain KD-tree. Exact.
  • "graph": approximate. Each search point is linked to its graph_degree (default 16) nearest neighbours at build time. A query finds its single nearest search point exactly through the hybrid grid, then floods outwards along graph edges in best-first order. It never returns a point outside the radius and never a duplicate, but it can miss neighbours; recall is high for num_neighbours <= graph_degree and degrades gradually above it. Counts can only ever undercount.
  • "kiddo": the kiddo crate's KD-tree, present only in builds compiled with the kiddo-baseline cargo feature. It is a benchmark baseline, not part of released wheels.

method="auto" resolves to "kdtree". That is the whole rule, and it is what the measurements support: which backend wins a particular query is decided mostly by num_neighbours and the size of the query batch, neither of which is known when the index is built, and rules keyed on what is knowable (point count, grid occupancy) scored no better than always choosing the KD-tree. See oxvox.nns.choose_auto_method for the numbers, and grid_stats() if you want to look at the grid's occupancy (cell count, max and mean points per cell) and decide yourself.

Which method should I use?

From the benchmark in benchmarks/ (five synthetic cloud families and two 16M-point laser scans, point counts from 1e4 to 1.6e7, k in {1, 8, 64}, query batches from 1e3 to 4e6; full results and charts in benchmarks/results/report.html):

  • Use "kdtree" (or "auto") unless you have measured otherwise. It is the fastest exact oxvox backend at 56% of grid points and the fastest or within a couple of percent of it at the median; its worst case against the best backend of the moment is 1.5x at the 90th percentile.
  • Against scipy's cKDTree it is a median 2.1x faster on queries (10th percentile 1.1x, 90th 3.1x) and a median 5.6x faster to build (8.4x from a million points up); scipy only wins on tiny query batches, where it can be up to 3.3x faster because oxvox's per-call thread pool costs more than the query.
  • Against Open3D's hybrid search it is a median 1.9x faster, and up to 22x faster on dense clouds with small k, but Open3D wins at num_neighbours=64 on clustered data (up to 3.4x).
  • For count_neighbours, "kdtree" is fastest on 60% of measurements and a median 3-5x faster than scipy's query_ball_point.
  • "graph" stays an experiment: its kNN recall is high (median 1.0000, minimum 0.9853, at least 0.99 on 98% of checks) but it is several times slower than the exact backends, and its counts are badly low on dense clouds.

Example

import numpy as np
from oxvox.nns import OxVoxNNS

NUM_POINTS = 100_000
SEARCH_RADIUS = 0.05
search_points = np.random.random((NUM_POINTS, 3)).astype(np.float32)
query_points = np.random.random((NUM_POINTS, 3)).astype(np.float32)

nns = OxVoxNNS(search_points, SEARCH_RADIUS, method="auto")   # picks "kdtree"
grid = OxVoxNNS(search_points, SEARCH_RADIUS, method="voxel")  # the historical default

# Find up to `num_neighbours` nearest neighbours per query point. `indices`/`distances`
# are (Q, num_neighbours) arrays, padded with -1 where fewer neighbours were found
indices, distances = nns.find_neighbours(query_points, num_neighbours=10)

# Count neighbours within the search radius per query point (a uint32 exact count)
counts = nns.count_neighbours(query_points)

# Or weight each neighbour's contribution by how close it is, via the normalised
# kernel w = (1 - distance / search_radius) ** distance_weight_factor. This is 1 at
# zero distance and falls smoothly to 0 at the search radius; distance_weight_factor=0
# reproduces the exact count above, larger values concentrate weight near the query
weighted_counts = nns.count_neighbours(query_points, distance_weight_factor=1.0)

find_neighbours and count_neighbours both take a num_threads argument (default 0, meaning "use all available CPUs") and a progress flag; find_neighbours also takes an epsilon: once num_neighbours neighbours closer than epsilon have been found for a query point, its search stops early, which can help avoid getting bogged down in very dense regions of the search points (results are then approximate).

Multiprocessing

Every call (index build and query) runs on its own rayon thread pool created for that call, so OxVoxNNS objects can be built and queried in child processes created with any multiprocessing start method, including the default fork on Linux, and pickled across process boundaries.

The exact methods (voxel, kdtree, hybrid) return identical results up to tie ordering; they are tested against a brute-force reference and against each other. oxvox.nns.EXACT_METHODS lists them, and oxvox.nns.available_methods() lists every method compiled into the installed build.

Tests

All test files are executable for spot-testing functionality

To run all tests (Rust unit tests, then Python tests):

make test

Performance

benchmarks/ holds the comparison harness (every oxvox backend against scipy and Open3D, over synthetic and real pointclouds), the committed results, and the report built from them:

pip install -e ".[bench]"
maturin develop --release --features kiddo-baseline
python -m benchmarks.run --quick        # smoke grid, a few minutes
python -m benchmarks.report             # benchmarks/results/report.html

See benchmarks/README.md for the full grid and how a measurement is taken, and benchmarks/results/report.html for the charts and tables behind the advice above.

Building & Pushing to PyPI

  1. Get modifications made to existing workflow
diff .github/workflow{_templates,s}/CI.yml > /tmp/CI.patch
  1. Generate updated CI YAML
maturin generate-ci github > .github/workflows/CI.yml
  1. Apply changes to CI YAML (do manually if application of patch fails)
patch .github/workflows/CI.yml /tmp/CI.patch
  1. Update the version in Cargo.toml (this is the single source of truth for the package version; pyproject.toml picks it up via dynamic = ["version"])
[package]
name = "oxvox"
version = "1.0.0"
...
  1. Commit Cargo.lock along with the version bump (it is tracked, not gitignored, so every release builds from exactly the dependency versions that were tested)

  2. Tag with version number and push

git commit -am "Push version 1.0.0"
git tag 1.0.0
git push --tags

Metadata

Release files for oxvox 1.1.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 oxvox 1.1.0
File Size Uploaded
oxvox-1.1.0.tar.gz 606.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for oxvox 1.1.0
File
oxvox-1.1.0-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
oxvox-1.1.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
oxvox-1.1.0-cp314-cp314t-win32.whl CPython 3.14 CPython 3.14 free-threading Windows x86-32 Details
oxvox-1.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
oxvox-1.1.0-cp314-cp314t-musllinux_1_2_i686.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32 Details
oxvox-1.1.0-cp314-cp314t-musllinux_1_2_armv7l.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l Details
oxvox-1.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
oxvox-1.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
oxvox-1.1.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ IBM System/390x Details
oxvox-1.1.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ PowerPC 64-le Details
oxvox-1.1.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-32 Details
oxvox-1.1.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l Details
oxvox-1.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
oxvox-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
oxvox-1.1.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
oxvox-1.1.0-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details
oxvox-1.1.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
oxvox-1.1.0-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
oxvox-1.1.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
oxvox-1.1.0-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
oxvox-1.1.0-cp310-abi3-musllinux_1_2_armv7l.whl CPython 3.10 abi3 Linux musl 1.2+ ARMv7l Details
oxvox-1.1.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
oxvox-1.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
oxvox-1.1.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.10 abi3 Linux glibc 2.17+ IBM System/390x Details
oxvox-1.1.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.10 abi3 Linux glibc 2.17+ PowerPC 64-le Details
oxvox-1.1.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-32 Details
oxvox-1.1.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
oxvox-1.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
oxvox-1.1.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
oxvox-1.1.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 19.2 MB

Release files / oxvox-1.1.0.tar.gz

Download URL oxvox-1.1.0.tar.gz
Size 606.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b8a2e834c79a98e3a16b2cbe403db6f3d39d533c0031201bdc30a70e5cf757a8
BLAKE2b-256 checksum
How to use checksums
bd686ab6a6f7c84288f16615f66fe6fb05f1e08658bd7f2348d2824925b84a6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-win_arm64.whl

Download URL oxvox-1.1.0-cp314-cp314t-win_arm64.whl
Size 381.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
8d9a05078acedc66f4b8450815f477981601e14e38b9630f6e84e3dac63110ad
BLAKE2b-256 checksum
How to use checksums
130786e8231a19558ab47c4660a4dc413de76133ce4ce2d2a53bc5a2be2aa8d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-win_amd64.whl

Download URL oxvox-1.1.0-cp314-cp314t-win_amd64.whl
Size 398.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
4a5df6b01a91247cb0a4029b26fb07dfc04fea35ff084db23695cce4ebc292d9
BLAKE2b-256 checksum
How to use checksums
cf4af3c8dc2661f7a8baf1765be56da94faca7d6e3611447ed7b307f770552f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-win32.whl

Download URL oxvox-1.1.0-cp314-cp314t-win32.whl
Size 374.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-32
SHA-256 checksum
How to use checksums
840f890375e6940bdbdf88882d24cee22cb02103736e0a2e02fbd24c6828b1b3
BLAKE2b-256 checksum
How to use checksums
47221ce19adb87f3c52ccdb0ae4cc19747be94bf53f2ef460907316f1ee81b6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL oxvox-1.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 801.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
34d9ad5d25a64144ddd5a1c735c9a20c33df72c75886a293eb967baaf85956ab
BLAKE2b-256 checksum
How to use checksums
9b98f8b6732b476e91c40008e6f4887352815b7455c860a9346699ada95e403c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-musllinux_1_2_i686.whl

Download URL oxvox-1.1.0-cp314-cp314t-musllinux_1_2_i686.whl
Size 840.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
a5119d198f042637514ad10c37a09dd7e56cb9d96aa6b932dc5a827e698ce5f6
BLAKE2b-256 checksum
How to use checksums
d7a2513efaa093075a216592ae82a9e26f1763bdd56f980ae59c4c31d8ea38a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-musllinux_1_2_armv7l.whl

Download URL oxvox-1.1.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Size 865.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
5dfe93f82c35a63c750a758a919247e57295f36bbff9a305d48ae1f539c53c01
BLAKE2b-256 checksum
How to use checksums
7dd055aa1240b31d2559c7a0cc78ac03d46cf72ae68578d53ddc9cb558e6d65c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL oxvox-1.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 763.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
353520288dec8b6d0dc9258d878f1d9cda55552c54dac5665f5bc8cb34166cb9
BLAKE2b-256 checksum
How to use checksums
2dc93d48f664fa798c01ed73a5aec840c35578915574c2caf91918b13b605406
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL oxvox-1.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 593.2 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3621f6d476e2363137f47e6f38c01540bf5f7d344021d19377e3ef6d6f25423a
BLAKE2b-256 checksum
How to use checksums
cf6982cd9aa2c7c59f7ac4f0bb925ddfe61643e4596f75f7f54fede2b6f656a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL oxvox-1.1.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 619.2 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ IBM System/390x
SHA-256 checksum
How to use checksums
86d2c2e18f1eb4fc1adf024d6f8ea426ef79a619e1b7440c263883461ee255b2
BLAKE2b-256 checksum
How to use checksums
600ba473f168ab9dac84e5f2d2026c6ed89c3788187258b7eb7a3f10e32fb0d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL oxvox-1.1.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 739.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
1f328b7c117024f274f1995060ede00d706c26c9598c8f2f1e6e5b7a2ec54e47
BLAKE2b-256 checksum
How to use checksums
b5afe1ad11bfd926a16b0c12542fe9d906a03a3cac240b16602b8ccfda6a26bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL oxvox-1.1.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl
Size 635.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
5bbeba5696372cba56f57dedaca4fc079d55fbcf9916d7508f51ea96212366a7
BLAKE2b-256 checksum
How to use checksums
ead1476857cb8977306da6b056550da3acb30ac14a148a40405d5cdf2ebbe2df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL oxvox-1.1.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 588.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l
SHA-256 checksum
How to use checksums
fad0355f08fde8b20d41fb2d65ae3b01ded8148a45ebbf5e3ec6d0c6a6095084
BLAKE2b-256 checksum
How to use checksums
a5e787859a9cd3421cd72b952b0aa9f7f6e4178fe380202f0e707acb36deaed0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL oxvox-1.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 586.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d64d83eb769482d7540d8b3343536dd0fec9eab961270529e1e2f5b3df2a0af4
BLAKE2b-256 checksum
How to use checksums
f444159ceac9687e4922deaa8a3fa7d30ab9311d4c5e0bcd5a991ec8c72728c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL oxvox-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 523.5 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
54af3f0e2685f696c48346c9fabd7d5511babf291928682a1e822e26af704db2
BLAKE2b-256 checksum
How to use checksums
1f5b52306967ec11dd3f2a6a484ea833137c49e94566775a5f3bd6a4bed001bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL oxvox-1.1.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 528.2 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ddac63c6ed9e74f6c99cd40454a2278d7e3669fbdb036851ce94204a0891bc21
BLAKE2b-256 checksum
How to use checksums
54ae8bace17fc58b633a06534467011c09b8b5cc917ee2bc4f776a236b529c9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-win_arm64.whl

Download URL oxvox-1.1.0-cp310-abi3-win_arm64.whl
Size 388.7 kB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
0182c32a381d2ed6d33e01b4c59dafae72d42446e2b74247c98c5e4973595780
BLAKE2b-256 checksum
How to use checksums
ed72ce9117291f58da70a78b38372089e722fcaac0d6752aca833ead3bed6068
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-win_amd64.whl

Download URL oxvox-1.1.0-cp310-abi3-win_amd64.whl
Size 405.8 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
7e8be3d2e793a4412ace22e736eb31e0d1ae0fdfb275b288e08d756cc523955a
BLAKE2b-256 checksum
How to use checksums
0d5fa927af460eaecd5f051b6e09cdf72ef3cbdcbb88c1596b95bd2c481368f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-win32.whl

Download URL oxvox-1.1.0-cp310-abi3-win32.whl
Size 379.2 kB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
d2fb8c357007d52a8a0bf10caa5c3fad53c8351eb14025e0336c1d9db656b002
BLAKE2b-256 checksum
How to use checksums
7c7743b17b076418a4ab7cbcf733a3b35f38cbc183df5fb772e14cf067758013
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL oxvox-1.1.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 811.1 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
4df8889c2713c3828b8012d99e749a1e8fe218fa763c616ded43eb153e1b070c
BLAKE2b-256 checksum
How to use checksums
0bc068df7d583a855b109b618c50bd3e635e6246b0882f75b48c319a46cd5b39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-musllinux_1_2_i686.whl

Download URL oxvox-1.1.0-cp310-abi3-musllinux_1_2_i686.whl
Size 851.8 kB
Tags CPython 3.10 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
512ad4b8898ef1a846a403c2fb80c4b8f8d684bd3077cc2763316f5f15051ddc
BLAKE2b-256 checksum
How to use checksums
70babc8c96603c9be34a68341d76fa60a7c5be0094ae1028ffc8c511fe07b593
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-musllinux_1_2_armv7l.whl

Download URL oxvox-1.1.0-cp310-abi3-musllinux_1_2_armv7l.whl
Size 876.2 kB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
11db8ef96ac9ebdd3ab9f0f4d8c5753096b63c4a3f425878c5945ef0fe23ab53
BLAKE2b-256 checksum
How to use checksums
28c8b9ac08bf88e8a3481d1ac57fbf0a38f8cc5f930f6474f6462d7dd5c0f41b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL oxvox-1.1.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 772.5 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
f29dc7d9de0fd470d10ad5f0d69adfcd4e5a35ec90050a0910bf087c30047351
BLAKE2b-256 checksum
How to use checksums
75dee7118b4d57c9d63c66c0735ccf07fb211aae71170c1bfbb541e98b18459f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL oxvox-1.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 602.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
53ef15f9b54483ebbe8389988e54cd58e7e289e76ea3873e06fda7465498fbf5
BLAKE2b-256 checksum
How to use checksums
ac76fddf9047cefc406749b1039b80853006524887f294811f8f2fa39b24410a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL oxvox-1.1.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 628.4 kB
Tags CPython 3.10 Linux glibc 2.17+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
3ed97461f9cfccc63518b6bd40df321f0711bacdaf891c75bbb662399f46ea2c
BLAKE2b-256 checksum
How to use checksums
65a0c3d5a1b95b1af5ed6ea36863a84802911cd654a9ff29f4a5fce1e2f53a44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL oxvox-1.1.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 748.1 kB
Tags CPython 3.10 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
9b6062bbbebe38564c9fc764491309de5cde48d96832ec3cdacdb5d55e7f790f
BLAKE2b-256 checksum
How to use checksums
9d1803b94def67b62428fb39820380eaae02e52be3ae602891f47aac8e77a18b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL oxvox-1.1.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Size 648.3 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
dadef593ab0e304e01983895ef8a131730e173a4b330bc21d86821432e6cd277
BLAKE2b-256 checksum
How to use checksums
f73b9977733acc3334ffb84b4e31180531e540df48f3b5edc061ef8b4da96e54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL oxvox-1.1.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 601.0 kB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
7ebf3ea2038339fa3dc3416728f2c3a609c7715d046bcbd07a94550593a3c512
BLAKE2b-256 checksum
How to use checksums
fcbd8d2b26a274d50c409797375883bdbaa646cbae5007b75d9891fff78fca54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL oxvox-1.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 595.9 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
534bba4fa46e59fa75d6be13ee87d91c3b35cb4fc5deec934f97e67325229b68
BLAKE2b-256 checksum
How to use checksums
4c06785920033817782e966ca19c62b597c3c9585d6cba9386cd9aded248d64e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL oxvox-1.1.0-cp310-abi3-macosx_11_0_arm64.whl
Size 531.8 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
06bee8921d9675a3a46997c26a8fbb7f01222eb40a30a6681684542b232bbc1d
BLAKE2b-256 checksum
How to use checksums
148cf68f7ddb3ab890e82f1ba381815e0db3f99ed370e843da7f243582db049c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / oxvox-1.1.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL oxvox-1.1.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 534.4 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5f818279fdd6b72c30a9ec67a8baa63d64ebc7cbf2e2dfce45f601f6e2b103c1
BLAKE2b-256 checksum
How to use checksums
d7843f404ade5ba771e30fe6e703c3478601be6b747a0de59585e8c8d6dbc94d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release history Release notifications | RSS feed

This release

1.1.0 This release

31 release files

1.0.0

31 release files

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