ultravin
An extremely fast, fully offline NHTSA vPIC VIN decoder, written in Rust.
VINs decoded per second over a random corpus, single sequential caller — ultravin also batches across cores.
- ⚡️ ~0.042 ms per decode — orders of magnitude faster than the NHTSA SQL procedures (corgi, Postgres, MSSQL)
- 🦀 Pure Rust core, shipped as a Python library and a Rust crate
- 📦 The entire vPIC vehicle database baked into the wheel
- 🔌 Fully offline — no network, no database, no data files at runtime
- 🎯 Byte-for-byte parity with vPIC's
spVinDecode, verified across every decodable VIN — except documented vPIC defects, which ultravin deliberately does not reproduce (the registry, evidence) - 🐍 Installable via
pip, with a CLI and a library API - 🧵 Batches in parallel to ~82,000 VIN/s on 4 cores
- 🗃️ Parquet in, parquet out — decodes a dataset of any size in the memory of one chunk
ultravin is a faithful port of NHTSA's spVinDecode — the SQL procedure behind
vPIC — reimplemented in Rust and verified against the reference Postgres
implementation. Because the vehicle database ships inside the binary, decoding
needs no network, no database server, and no data files. Install it and decode.
Getting Started
Installation
uv add ultravin
Prebuilt wheels require Python 3.10+ and nothing else — the data ships inside the wheel.
Usage
From Python:
import ultravin
r = ultravin.decode("1HGCM82633A004352")
r["model_year"] # 2003
r["wmi"] # '1HG'
r["check_digit_valid"] # True
r["error_codes"] # [0]
# `attributes` is the decoded vehicle, one entry per vPIC variable:
r["attributes"]["Make"] # 'HONDA'
r["attributes"]["Model"] # 'Accord'
decode(vin) returns a dict with keys vin, wmi, descriptor,
model_year, error_codes, check_digit_valid, corrected_vin, and
attributes — a single variable -> value mapping. Values are str, except the
free-text note fields listed in ultravin.MULTI_VALUED, which are always
list[str]: those are the only vPIC elements allowed to repeat within one
decode, and each row is a separate note rather than a competing value.
Decode many at once with decode_batch:
results = ultravin.decode_batch(["1HGCM82633A004352", "5YJ3E1EA7JF000000"])
If you already know a vehicle's model year, pass it — the same optional hint the
vPIC API calls modelyear. It matters for pre-2010 vehicles, where the VIN's
year character is ambiguous (A means 1980 or 2010): the hinted year gets its
own decode pass that competes against the VIN-derived one, and a hint that
contradicts the decoded year adds error code 12.
ultravin.decode("1HGCM82633A004352", year=1995) # decodes as a 1995
ultravin.decode_batch(vins, years=[2011, None, 1987]) # one entry per VIN
Provenance: full=True
The default keeps the value and drops the provenance. If you need to know where
a value came from — source, over half of all rows being vehicle-type defaults
rather than something the VIN encodes — or the raw vPIC attribute_id, pass
full=True:
r = ultravin.decode("1HGCM82633A004352", full=True)
r["elements"][0] # {'variable': 'Make', 'value': 'HONDA', 'source': 'Manu. Name', …}
full=True replaces attributes with elements, a list of per-attribute dicts
(group_name, variable, value, element_id, attribute_id, source,
pattern_id, …), and works the same on decode_batch, decode_json and
decode_batch_json. It is ~2× slower end to end: decoding is not the
expensive part, and elements costs ~615 dict entries per VIN against the
default's ~41.
ultravin.ELEMENTS maps each variable name to its static metadata
(element_id, group_name, data_type, …). Pin to element_id if you need a
key that survives NHTSA renaming a variable between data releases.
From the command line — every command emits JSON:
ultravin decode 1HGCM82633A004352 # JSON object
ultravin decode 1HGCM82633A004352 --year 1995 # with a caller model-year hint
ultravin decode 1HGCM82633A004352 --full # with per-element provenance
ultravin decode-batch vins.txt # one VIN per line -> JSON array
ultravin version
Rust
The engine is its own crate, ultravin:
cargo add ultravin, then
let r = ultravin::decode("1HGCM82633A004352", None);
assert_eq!(r.model_year, Some(2003));
The 83 MB vPIC database is too big for crates.io, so the first build fetches it from the matching GitHub release, verifies it, caches it per machine and bakes it into your binary — runtime stays fully offline. Offline builds and runtime loading: crates/ultravin/README.md.
Datasets
For bulk work there is decode_stream — a stream of decoded Arrow batches,
without a single row ever becoming a Python object:
import ultravin
rows = ultravin.decode_stream("registrations.parquet").to_parquet("decoded.parquet")
rows # 4812004 — the rows written, not the rows themselves
The source is a parquet file, a directory of *.parquet read in sorted order, or
anything speaking the Arrow C data interface — so the same call takes a pandas
DataFrame (pandas ≥ 2.2, with pyarrow installed), a pyarrow Table, a polars
DataFrame, a duckdb result, or a RecordBatchReader. A DecodeStream is
itself an Arrow source, which is what lets it hand the decode straight to
whatever you already use:
import pandas as pd, polars as pl, pyarrow as pa, duckdb
df = pd.DataFrame({"vin": ["1HGCM82633A004352", "5YJ3E1EA7KF328931"]})
pl.DataFrame(ultravin.decode_stream(df)) # -> polars
pa.table(ultravin.decode_stream(df)) # -> pyarrow
ultravin.decode_stream(df).to_pandas() # -> pandas (needs pyarrow)
stream = ultravin.decode_stream(df) # duckdb resolves the name from scope
duckdb.sql("select Make, count(*) from stream group by 1")
Each stream is single-use — note the fresh decode_stream(...) on every line
above. It pulls from a source that has already moved on, so a second consumer
would get a silently truncated result; consuming one twice raises RuntimeError
rather than handing back a short answer. Call decode_stream again to re-read.
Picking columns
columns= takes vPIC variable names, element_ids, or both together; omit it for
every publicly decodable element:
ultravin.decode_stream("registrations.parquet", columns=["Make", "Model", 13])
Pin to element_id for anything long-lived. The id is the one key NHTSA does
not rename between monthly data releases.
Column naming and schema drift
Naming output columns after vPIC variables means a data refresh can silently
change your table's shape — NHTSA renames variables, and Displacement (L)
becoming something else takes every downstream query with it. column_names="id"
labels each projected column attr_<element_id> instead, which never moves:
ultravin.decode_stream(src, columns=[26, 13], column_names="id")
# -> vin, decoded_model_year, attr_26, attr_13
Passthrough columns (the source VIN column, the source year column, and
decoded_model_year) keep their own names in both modes; only the projection is
renamed. The default is "variable" — reach for "id" when the output feeds a
persisted schema rather than a human.
You never lose the other name. Every projected column carries both keys as Arrow field metadata, in both modes, and they survive the parquet round-trip:
table = pa.table(ultravin.decode_stream(src, columns=[26, 13], column_names="id"))
{f.name: dict(f.metadata) for f in table.schema if f.metadata}
# {'attr_26': {b'element_id': b'26', b'variable': b'Make'},
# 'attr_13': {b'element_id': b'13', b'variable': b'Displacement (L)'}}
Columns and layout
The VIN column is found by name (vin, case-insensitively) and then, for a
parquet source, by sniffing the leading rows — as is the optional caller-year
column (year, model_year, …); pass vin_column=/year_column= to name them
outright. Any text encoding works: Utf8, LargeUtf8, Utf8View, or the
dictionary a pandas categorical arrives as.
The output holds the VIN and caller year passed through, then
decoded_model_year (named so it cannot collide with an input column called
model_year), then one column per projected element — string, int64 or
float64 following vPIC's own data_type, with an empty value written as null.
Row order and row count always equal the input's: an undecodable VIN is a row of
nulls, never a raise and never a dropped row.
For a parquet source, rows stream through in batch_size-row chunks with the GIL
released, so peak memory is one chunk no matter how large the source is. For an
Arrow source the producer decides the input chunking, and batch_size only sets
the parquet row-group size of to_parquet. Reading and writing parquet is the
same Rust as the decoding, so the parquet path needs no pyarrow and no other
install; only the pyarrow/polars/pandas hand-offs need those libraries.
From the command line:
ultravin decode-parquet registrations.parquet decoded.parquet --columns Make,Model
ultravin decode-parquet parts/ decoded.parquet --columns 26,28 --vin-column chassis_no
ultravin decode-parquet registrations.parquet decoded.parquet --column-names id
Benchmarks
How many VINs each engine decodes per second, single sequential caller, over an identical random corpus of 5,000 valid VINs (measured over 60 s; Apple Silicon, batched across 4 cores):
| engine | VIN/s | vs ultravin (1 core) |
|---|---|---|
| ultravin — batched, 4 cores | 81,948 | ~3.3× faster |
| ultravin — 1 core | 25,175 | 1× |
corgi v3 — @cardog/corgi (binary index) |
~83 | ~303× slower |
corgi v2 — @cardog/corgi 2.0.1 (SQLite) |
~33 | ~763× slower |
NHTSA MSSQL — spVinDecode (SQL Server) |
22.5 | ~1,119× slower |
NHTSA Postgres — spvindecode |
19.5 | ~1,291× slower |
| NHTSA vPIC web API — public rate limit | ~10 | ~2,518× slower |
ultravin runs in-process with the database embedded — no server, no round-trip.
The corgi figures are derived from its project's published per-VIN latency
(~12 ms v3 / ~30 ms v2, not re-measured here). The NHTSA Postgres and MSSQL
oracles run the unmodified spVinDecode over localhost; MSSQL is SQL Server
under amd64 emulation on Apple Silicon, so its number understates native
hardware — ultravin is still ~1,119× faster. The NHTSA vPIC web API row is its
published ~10 req/s rate limit, not
a decode time — a hard ceiling regardless of hardware. Methodology and
reproduction: docs/BENCHMARKS.md.
License
MIT. The embedded NHTSA vPIC data has its own provenance — see NOTICE.
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 ultravin-2.0.0.tar.gz.
File metadata
- Download URL: ultravin-2.0.0.tar.gz
- Upload date:
- Size: 21.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d2c03b0920f386734affae9b9e52579e92eea765be596e3527a986a07061b13
|
|
| MD5 |
6e6dde69a9ed3cedccc480cfd7b33804
|
|
| BLAKE2b-256 |
1a76d58723ca8578030a52a8e850642873d11daa463d8f622d55d06c172bd0d5
|
Provenance
The following attestation bundles were made for ultravin-2.0.0.tar.gz:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0.tar.gz -
Subject digest:
6d2c03b0920f386734affae9b9e52579e92eea765be596e3527a986a07061b13 - Sigstore transparency entry: 2581868473
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-win_arm64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-win_arm64.whl
- Upload date:
- Size: 25.3 MB
- Tags: CPython 3.10+, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be36768ded6e3be0504034f7b28230ee78e033ed02675a8604a9767309e150a2
|
|
| MD5 |
ad91fe5a38320049bbea2e4ec6b0f0eb
|
|
| BLAKE2b-256 |
bddfe78d6b8a51aaaa7d533a02ea4875d29a23717a438b3bc1d5b33fdd258f62
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-win_arm64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-win_arm64.whl -
Subject digest:
be36768ded6e3be0504034f7b28230ee78e033ed02675a8604a9767309e150a2 - Sigstore transparency entry: 2581868626
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 25.8 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edb4ac6cb0d6628ece553af276090e22c207910a5fd363052457b995e7f936aa
|
|
| MD5 |
b8b1e1e9a17b1edd7967333b9a59585a
|
|
| BLAKE2b-256 |
6c69bfacaa0682967367b338e2fb37ab4a707dd7aee23638954bf74a0bdb225b
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-win_amd64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-win_amd64.whl -
Subject digest:
edb4ac6cb0d6628ece553af276090e22c207910a5fd363052457b995e7f936aa - Sigstore transparency entry: 2581868555
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-win32.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-win32.whl
- Upload date:
- Size: 25.3 MB
- Tags: CPython 3.10+, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4bb31b34f0e76afa7c94bb2bcdf4fe35ad97b1171e02e7296d2fe96a4ef39a3
|
|
| MD5 |
eb3a67548c44495b9c78f39f44a4470d
|
|
| BLAKE2b-256 |
d6742693b90f1e3d614af84339e627cb99f1ad3d6dd9ccd5e8762364a97bc98e
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-win32.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-win32.whl -
Subject digest:
e4bb31b34f0e76afa7c94bb2bcdf4fe35ad97b1171e02e7296d2fe96a4ef39a3 - Sigstore transparency entry: 2581868653
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 26.0 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1930305c80740ff3af743b85fa6b788adda70b03f8de680e2836c791183c0fe
|
|
| MD5 |
c64166efbcd4677beef8b8a2da5c8c72
|
|
| BLAKE2b-256 |
6d821bc67f897fa1964301e8476fc009f682d5137b80609f9e11d8b25d02d605
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-musllinux_1_2_x86_64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-musllinux_1_2_x86_64.whl -
Subject digest:
d1930305c80740ff3af743b85fa6b788adda70b03f8de680e2836c791183c0fe - Sigstore transparency entry: 2581868570
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-musllinux_1_2_i686.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-musllinux_1_2_i686.whl
- Upload date:
- Size: 26.0 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd58839b1c9287c29291f158526f788d193e1ae71dbc2e994f6e4786e73f3d29
|
|
| MD5 |
b7a2337df5f7c2bb672aa9a6d9b77d79
|
|
| BLAKE2b-256 |
05614dbe01072b4cd8e0aaa261171c21f27542e4d99b7a63dee395866975d348
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-musllinux_1_2_i686.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-musllinux_1_2_i686.whl -
Subject digest:
dd58839b1c9287c29291f158526f788d193e1ae71dbc2e994f6e4786e73f3d29 - Sigstore transparency entry: 2581868541
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 26.2 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c07eb5064581827d6f73e46922c58d7723b3cf6b9277882370453914656d72de
|
|
| MD5 |
427a51911d47eb6e902ea2943215582d
|
|
| BLAKE2b-256 |
7bce3c3f1076ecf7484f107a6a9a9aad4be98939c44a99ea511174dec0a1ed56
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-musllinux_1_2_armv7l.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-musllinux_1_2_armv7l.whl -
Subject digest:
c07eb5064581827d6f73e46922c58d7723b3cf6b9277882370453914656d72de - Sigstore transparency entry: 2581868589
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 25.7 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1d79ecd7846a95776ce3115f9a0bfa73c1bb455c7b67e2ccd4462d44d6a9c3d
|
|
| MD5 |
1241cf99b1cd4a0478c01b192f6caca0
|
|
| BLAKE2b-256 |
af5dd55afd709b025fbcb503d75fc6935d0eea205bb702d98784fc7584f4209e
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-musllinux_1_2_aarch64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-musllinux_1_2_aarch64.whl -
Subject digest:
e1d79ecd7846a95776ce3115f9a0bfa73c1bb455c7b67e2ccd4462d44d6a9c3d - Sigstore transparency entry: 2581868510
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-manylinux_2_31_riscv64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-manylinux_2_31_riscv64.whl
- Upload date:
- Size: 25.8 MB
- Tags: CPython 3.10+, manylinux: glibc 2.31+ riscv64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29d1bd88325f82d1eacd385e56b6daa8a4b700b3cc7e5ab3ce9f19dc999e11fb
|
|
| MD5 |
55d922ecd04629c5c1b472fa4909ee27
|
|
| BLAKE2b-256 |
23670cb27944f2695b9c5c287561a7b9c4d16d806b1faf7a5eca954556090606
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-manylinux_2_31_riscv64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-manylinux_2_31_riscv64.whl -
Subject digest:
29d1bd88325f82d1eacd385e56b6daa8a4b700b3cc7e5ab3ce9f19dc999e11fb - Sigstore transparency entry: 2581868485
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 25.5 MB
- Tags: CPython 3.10+, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30bd8345029f27298a768a3dba127f7556e885acef0126ba3c7befeb40eb9211
|
|
| MD5 |
649dee2ba1f58ab464decf4e42f67abc
|
|
| BLAKE2b-256 |
028aba29df7c6ad3cbd2aa3ab65c32826c7cc625a8091aa506c41c041b842af0
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-manylinux_2_28_aarch64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-manylinux_2_28_aarch64.whl -
Subject digest:
30bd8345029f27298a768a3dba127f7556e885acef0126ba3c7befeb40eb9211 - Sigstore transparency entry: 2581868501
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 25.7 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
774925f4048b2ae353f0376b23cbe07a1882275c67f58a077cfc83414a455006
|
|
| MD5 |
e4215aa6a93931dddb839a98e8eb03e4
|
|
| BLAKE2b-256 |
7eee74e29b3069ddfacdd6ccd56bd8f326cb9ee6a3cea67946a564d4f9d829ee
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
774925f4048b2ae353f0376b23cbe07a1882275c67f58a077cfc83414a455006 - Sigstore transparency entry: 2581868523
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 26.2 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfc350878c68dd63e809b02cec258ec2b2b40ddd8c6129ed99543991d3317fe7
|
|
| MD5 |
cb1eb8d6308342a7d85eba842bad7e03
|
|
| BLAKE2b-256 |
9121b8d43c490e26e0cdaacb52d727feba507db25a47da06431903de8cf5bb80
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl -
Subject digest:
dfc350878c68dd63e809b02cec258ec2b2b40ddd8c6129ed99543991d3317fe7 - Sigstore transparency entry: 2581868563
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 25.9 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d3250ee1d2bf5bb7e96b53ae7e1761b06904969ce7d30c5a9976c6a9098d86a
|
|
| MD5 |
9a7df3afa504ffbd28cbd0134ea38aee
|
|
| BLAKE2b-256 |
b8ef3ecef81f4899bed5b95670ed8733ceac8a250027598f4703c79f447d9e02
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl -
Subject digest:
0d3250ee1d2bf5bb7e96b53ae7e1761b06904969ce7d30c5a9976c6a9098d86a - Sigstore transparency entry: 2581868614
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 25.9 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7e36891659dd5a501670a812660c58c1c0167df089e17380b0a6c9de56a2889
|
|
| MD5 |
e8df503d7c3d47e64b86aa44f9973640
|
|
| BLAKE2b-256 |
a88a9e55366c05cdcab667f448d0b5cd8c05e9097d178484bd2193b6d5b35c18
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl -
Subject digest:
a7e36891659dd5a501670a812660c58c1c0167df089e17380b0a6c9de56a2889 - Sigstore transparency entry: 2581868576
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
- Upload date:
- Size: 25.9 MB
- Tags: CPython 3.10+, manylinux: glibc 2.12+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d70a61b0cc3181aefcbcb673b6cba9e8e01dc1c3946c5e54d75adedb7b128ad
|
|
| MD5 |
5120427231a7a34bc7c56c3d7153f1d8
|
|
| BLAKE2b-256 |
96e525aa4f62773fcb4689c4207359ec71d7abe2f5b57b299bd7d677384b70e5
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl -
Subject digest:
1d70a61b0cc3181aefcbcb673b6cba9e8e01dc1c3946c5e54d75adedb7b128ad - Sigstore transparency entry: 2581868533
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 26.0 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bdc3c74adb1cd540ba5f340166b0a1fbfe5b417637595797454aa47e4f4c1a8
|
|
| MD5 |
f99250d5b13f79bc96d768de3f48cbbf
|
|
| BLAKE2b-256 |
2ae8b909b3713ccb58b3c3d0027ae241acd02a51c0f3207057ace9c639bf828f
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
2bdc3c74adb1cd540ba5f340166b0a1fbfe5b417637595797454aa47e4f4c1a8 - Sigstore transparency entry: 2581868603
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ultravin-2.0.0-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ultravin-2.0.0-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 25.6 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83c1bdf270c8f4759af35d52993390d3e71d2f7f062270dc61a9b3e43e18cb3e
|
|
| MD5 |
77a2d3fb6345520be6bed99fb55aeea0
|
|
| BLAKE2b-256 |
057cc6547e285783ce654e349d903dce0a975a35675da62525c71079ad7d9729
|
Provenance
The following attestation bundles were made for ultravin-2.0.0-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
release.yaml on blackthorn-interstellar/ultravin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ultravin-2.0.0-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
83c1bdf270c8f4759af35d52993390d3e71d2f7f062270dc61a9b3e43e18cb3e - Sigstore transparency entry: 2581868637
- Sigstore integration time:
-
Permalink:
blackthorn-interstellar/ultravin@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/blackthorn-interstellar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@f81a2936288c7e5fe62b0779b59fed23e3e8d5c2 -
Trigger Event:
push
-
Statement type: