High-performance, parity-preserving COCO-style evaluation
Project description
vernier
High-performance, parity-preserving COCO-style evaluation for object detection, instance segmentation, and keypoints. Rust core, Python frontend, optional CLI.
Status: early development. Public API is unstable and the project is
pre-1.0. See docs/adr/ for the design decisions that are shaping it.
Why vernier
Existing COCO evaluation tooling presents a forced choice: the reference
pycocotools is correct-by-definition but slow and unmaintained; faster
reimplementations exist but each comes with its own drift from the reference.
vernier aims to provide a single library that is:
- Bitwise identical to the pycocotools reference on the minimal API
- Fast — Rust core, SIMD-friendly data layout, zero-copy on the hot path
- Honest about quirks — extended API offers corrected definitions alongside the reference, with the difference documented per-quirk
- Embeddable — pure-Rust core usable from CLI, ROS2 nodes, or any other Rust program without dragging Python along
Layout
crates/
vernier-core/ pure Rust evaluation logic; no Python dependency
vernier-ffi/ PyO3 bindings; data conversion only, no business logic
python/
vernier/ thin Python wrapper; the user-facing API lives here
docs/
adr/ Architecture Decision Records
... Diátaxis-organized documentation
tests/
rust/ Rust integration tests
python/ Python tests against the FFI boundary
Quickstart (development)
Prerequisites: Rust stable, uv,
just, and cargo-nextest.
# One-time setup
just bootstrap
# Iterate
just develop # fast incremental rebuild
just test # Rust + Python tests
just lint # clippy + ruff + pyright (read-only, CI-equivalent)
just fmt # auto-format everything
Project governance
Architectural decisions are recorded in docs/adr/. The first ADR
(0001-record-architecture-decisions.md) establishes the process itself.
Significant changes — anything that affects the public API, the FFI boundary,
or the parity contract — start as an ADR draft.
License
Dual-licensed under either of Apache License, Version 2.0 or MIT license at your option.
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 Distributions
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 vernier-0.0.1-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: vernier-0.0.1-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 489.8 kB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
005347aabe0176cea97c664635979e2ae2e9cdf1dd74d832a316c156a838b92b
|
|
| MD5 |
659c11389d968151c07f901a41ab993f
|
|
| BLAKE2b-256 |
b6f4b168308c04469fa56cc4f2e1cba37aeceb0c3b2d9ab377bdc512bed8acbc
|
Provenance
The following attestation bundles were made for vernier-0.0.1-cp310-abi3-win_amd64.whl:
Publisher:
wheels.yml on NoeFontana/vernier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vernier-0.0.1-cp310-abi3-win_amd64.whl -
Subject digest:
005347aabe0176cea97c664635979e2ae2e9cdf1dd74d832a316c156a838b92b - Sigstore transparency entry: 1416317572
- Sigstore integration time:
-
Permalink:
NoeFontana/vernier@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/NoeFontana
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vernier-0.0.1-cp310-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: vernier-0.0.1-cp310-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 776.5 kB
- Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08483063f31c71eb3d032fc9c3f3322d8a42d6ef37a3a3a703f9c6dee6e67606
|
|
| MD5 |
d3ec1f7180c4fa44a6c9da66e49eaa98
|
|
| BLAKE2b-256 |
aa1fb8baac86d7668d6c31e6c9adacf6f7036c804cdb0fad22d11988b73fdba0
|
Provenance
The following attestation bundles were made for vernier-0.0.1-cp310-abi3-musllinux_1_2_x86_64.whl:
Publisher:
wheels.yml on NoeFontana/vernier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vernier-0.0.1-cp310-abi3-musllinux_1_2_x86_64.whl -
Subject digest:
08483063f31c71eb3d032fc9c3f3322d8a42d6ef37a3a3a703f9c6dee6e67606 - Sigstore transparency entry: 1416317649
- Sigstore integration time:
-
Permalink:
NoeFontana/vernier@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/NoeFontana
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vernier-0.0.1-cp310-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: vernier-0.0.1-cp310-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 713.2 kB
- Tags: CPython 3.10+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
def08f5f2f06bf2163382cb2d355c44e7fb107acea79564510da3f97a071e29c
|
|
| MD5 |
bd75b0acf09c93421d83c57a82d6bf94
|
|
| BLAKE2b-256 |
2d74454a41ffef86c7945f6855eccebbecf5563e898680c5198a1c0963ae0598
|
Provenance
The following attestation bundles were made for vernier-0.0.1-cp310-abi3-musllinux_1_2_aarch64.whl:
Publisher:
wheels.yml on NoeFontana/vernier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vernier-0.0.1-cp310-abi3-musllinux_1_2_aarch64.whl -
Subject digest:
def08f5f2f06bf2163382cb2d355c44e7fb107acea79564510da3f97a071e29c - Sigstore transparency entry: 1416317848
- Sigstore integration time:
-
Permalink:
NoeFontana/vernier@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/NoeFontana
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vernier-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: vernier-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 562.6 kB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57fb47ad8efa4b660434b1868dc36244d6ee55995b4806062617bc164b93547d
|
|
| MD5 |
91c150b806d65256fec5de6dfe500948
|
|
| BLAKE2b-256 |
0ab4cf3a293cae3986984bbf7bc657a493bda13baf1a6416d7d611da3d0dc35f
|
Provenance
The following attestation bundles were made for vernier-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
wheels.yml on NoeFontana/vernier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vernier-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
57fb47ad8efa4b660434b1868dc36244d6ee55995b4806062617bc164b93547d - Sigstore transparency entry: 1416317775
- Sigstore integration time:
-
Permalink:
NoeFontana/vernier@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/NoeFontana
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vernier-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: vernier-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 536.3 kB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c364e766b75dc0aa4a90fa86188aaf15b7d0935fcaa3c5f062958425ddc0b280
|
|
| MD5 |
e641f07ff7edbc49e429f3a4a081ca62
|
|
| BLAKE2b-256 |
7261ac40a08a5d9a7c3a7cccc5a732b88eca912ebdf5313e21f2c923b4b0aeea
|
Provenance
The following attestation bundles were made for vernier-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
wheels.yml on NoeFontana/vernier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vernier-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
c364e766b75dc0aa4a90fa86188aaf15b7d0935fcaa3c5f062958425ddc0b280 - Sigstore transparency entry: 1416317906
- Sigstore integration time:
-
Permalink:
NoeFontana/vernier@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/NoeFontana
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vernier-0.0.1-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: vernier-0.0.1-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 508.7 kB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5f2d2b51263f75ef23c04fecd3656dc7a11ee73ef0405fcfe9f34084733eb75
|
|
| MD5 |
471b9d46e93df11410a115b0c6f420b1
|
|
| BLAKE2b-256 |
37af28c61bd808e74cdae49631f7a546c2a34bfc69016e8c49dfb4d175f61af2
|
Provenance
The following attestation bundles were made for vernier-0.0.1-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
wheels.yml on NoeFontana/vernier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vernier-0.0.1-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
d5f2d2b51263f75ef23c04fecd3656dc7a11ee73ef0405fcfe9f34084733eb75 - Sigstore transparency entry: 1416317978
- Sigstore integration time:
-
Permalink:
NoeFontana/vernier@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/NoeFontana
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vernier-0.0.1-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: vernier-0.0.1-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 531.3 kB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53be05055a7e34c8de3c0a80613ab8b25f8956becf57e75007357a597fab1093
|
|
| MD5 |
a0f268184a84b53e9e4154e65132b089
|
|
| BLAKE2b-256 |
48e8b33778dbdba4acb31d2a90bb6f800fca6394b1465543b893a915c09aca43
|
Provenance
The following attestation bundles were made for vernier-0.0.1-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
wheels.yml on NoeFontana/vernier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vernier-0.0.1-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
53be05055a7e34c8de3c0a80613ab8b25f8956becf57e75007357a597fab1093 - Sigstore transparency entry: 1416317726
- Sigstore integration time:
-
Permalink:
NoeFontana/vernier@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/NoeFontana
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@fa1a04b4fb1413d24bb4c185f8d662611c9d5d49 -
Trigger Event:
push
-
Statement type: