vortex-rdf
Python bindings for Vortex-RDF, a modern, high-performance columnar RDF serialization format.
Stores can be opened lazily from .vortex files and queried in place, without loading the dataset into memory.
The vortex-rdflib package, which implements an rdflib Store (with SPARQL capabilities) on top of these bindings.
Install
pip install vortex-rdf
Development build (managed with uv; maturin runs under the hood as the build backend):
cd python
uv sync # creates .venv, builds + installs the extension
uv run pytest tests # run the test suite
uv run maturin develop --uv # fast rebuild while iterating on Rust code
Rust source changes are picked up by uv sync automatically (see
[tool.uv] cache-keys in pyproject.toml). Without uv, the classic flow
works too: python -m venv .venv && pip install maturin && maturin develop.
Building from source (the sdist or a development build) additionally
requires libclang: a transitive build dependency of the Vortex file
engine (custom-labels, via vortex-io) generates C bindings with
bindgen at compile time. It is preinstalled on most dev setups (Xcode,
LLVM on Windows); on Linux install e.g. clang-devel (dnf) or
libclang-dev (apt). Installing a published wheel needs none of this.
Usage
from vortex_rdf import VortexRdfStore, serialize_rdf
# RDF file -> .vortex store file
serialize_rdf("data.nt", "data.vortex", layout="dictionary")
store = VortexRdfStore("data.vortex") # lazy open; file layout is auto-detected
len(store) # number of quads
store.match_triples(p="<http://xmlns.com/foaf/0.1/name>")
store.match_compact(p="<http://xmlns.com/foaf/0.1/name>") # (term_table, rows)
Terms cross the boundary as N-Triples strings (<iri>, _:b0, "lit"@en,
"3"^^<http://www.w3.org/2001/XMLSchema#integer>). match_compact returns a
de-duplicated term table plus index triples so callers parse each distinct
term once.
Code columns (Dictionary layout)
For Dictionary-layout stores, match_codes returns the matched rows as four
zero-copy u32 term-code columns — memoryview(col).cast("I") views the
Rust memory directly — decodable through a term_dict() handle:
cols = store.match_codes(p="<http://xmlns.com/foaf/0.1/name>") # (s, p, o, g)
dictionary = store.term_dict()
subjects = memoryview(cols[0]).cast("I")
dictionary.decode(subjects[0]) # N-Triples string for that code
Consumers can join, count, and de-duplicate entirely in code space and decode
each distinct term once — this is what powers vortex-rdflib's SPARQL BGP
pushdown.
Layouts
serialize_rdf(..., layout=...) accepts "default", "typed-object" and
"dictionary" (with dictionary_placement="padded"|"sidecar"). Opening
auto-detects the layout — VortexRdfStore takes no layout argument.
For Dictionary-layout files, the term dictionary is held in memory when it
fits the residency budget; pass VortexRdfStore(path, max_resident_terms=...)
to raise the budget (recommended for benchmarking large stores).
File-backed vs in-memory
The default open is lazy and file-backed. VortexRdfStore(path, in_memory=True)
loads the store into memory once: each subsequent match skips the per-call
file-scan pipeline (~1 ms → ~0.15 ms per call).
Tests
pip install -e .[test] # or: maturin develop && pip install pytest
pytest tests
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 vortex_rdf-0.5.0.tar.gz.
File metadata
- Download URL: vortex_rdf-0.5.0.tar.gz
- Upload date:
- Size: 209.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce10a03888407129d51e3f48aa78d6e959ddd96ce22057ba4650604dff6f96e6
|
|
| MD5 |
dfe6e2cb07e453272abf9eb386ebaf52
|
|
| BLAKE2b-256 |
2de025f49803f2daa08f3e67550b816e3409e3b94611677ae9ff95e7b10b086b
|
Provenance
The following attestation bundles were made for vortex_rdf-0.5.0.tar.gz:
Publisher:
release.yml on vortex-rdf/vortex-rdf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vortex_rdf-0.5.0.tar.gz -
Subject digest:
ce10a03888407129d51e3f48aa78d6e959ddd96ce22057ba4650604dff6f96e6 - Sigstore transparency entry: 2284901814
- Sigstore integration time:
-
Permalink:
vortex-rdf/vortex-rdf@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vortex-rdf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file vortex_rdf-0.5.0-cp311-abi3-win_amd64.whl.
File metadata
- Download URL: vortex_rdf-0.5.0-cp311-abi3-win_amd64.whl
- Upload date:
- Size: 11.5 MB
- Tags: CPython 3.11+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f69009309317de15936038be90c1f563938d3cc6053b48195e426a121975c244
|
|
| MD5 |
6c4455bca39af954c15443233855137a
|
|
| BLAKE2b-256 |
0ef44a0a6418122573c2d329658291968068b4af5f0344b7368634c06ac71ae8
|
Provenance
The following attestation bundles were made for vortex_rdf-0.5.0-cp311-abi3-win_amd64.whl:
Publisher:
release.yml on vortex-rdf/vortex-rdf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vortex_rdf-0.5.0-cp311-abi3-win_amd64.whl -
Subject digest:
f69009309317de15936038be90c1f563938d3cc6053b48195e426a121975c244 - Sigstore transparency entry: 2284901954
- Sigstore integration time:
-
Permalink:
vortex-rdf/vortex-rdf@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vortex-rdf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.11+, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2de7b322f227e5e7b8f06da428cdba15aa9c2ce18719af2be6cac2fb201f13f4
|
|
| MD5 |
fae85ff5e086d962c0a05b9e16c3ccc8
|
|
| BLAKE2b-256 |
d912b53cc8adb5f30de718eacc17659f8f8fad2f948e80657f0ebfc7461134b5
|
Provenance
The following attestation bundles were made for vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on vortex-rdf/vortex-rdf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_x86_64.whl -
Subject digest:
2de7b322f227e5e7b8f06da428cdba15aa9c2ce18719af2be6cac2fb201f13f4 - Sigstore transparency entry: 2284901889
- Sigstore integration time:
-
Permalink:
vortex-rdf/vortex-rdf@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vortex-rdf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 9.9 MB
- Tags: CPython 3.11+, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32a2027720e1c3955abc215b4a3618e39e925567df3f31c58e8a6f1e6103b835
|
|
| MD5 |
3d95efec215f8c0c1b1e25b092b7a490
|
|
| BLAKE2b-256 |
7cf523c0676a488d63ee9cbb859020f4a74221d3177787c6a30995e75a14ef90
|
Provenance
The following attestation bundles were made for vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_aarch64.whl:
Publisher:
release.yml on vortex-rdf/vortex-rdf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_aarch64.whl -
Subject digest:
32a2027720e1c3955abc215b4a3618e39e925567df3f31c58e8a6f1e6103b835 - Sigstore transparency entry: 2284901919
- Sigstore integration time:
-
Permalink:
vortex-rdf/vortex-rdf@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vortex-rdf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file vortex_rdf-0.5.0-cp311-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: vortex_rdf-0.5.0-cp311-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 10.3 MB
- Tags: CPython 3.11+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9556be5d2acd7535716900c42383cdf2c76fe5471e8c8e7939a24cea12c30354
|
|
| MD5 |
80335d62b07e64e88d13f622e446926e
|
|
| BLAKE2b-256 |
a0d7c5171a092f1763fe77c7de14e077a028e3c283ebda2dbfa62f8c02087155
|
Provenance
The following attestation bundles were made for vortex_rdf-0.5.0-cp311-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yml on vortex-rdf/vortex-rdf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vortex_rdf-0.5.0-cp311-abi3-macosx_11_0_arm64.whl -
Subject digest:
9556be5d2acd7535716900c42383cdf2c76fe5471e8c8e7939a24cea12c30354 - Sigstore transparency entry: 2284901852
- Sigstore integration time:
-
Permalink:
vortex-rdf/vortex-rdf@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vortex-rdf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file vortex_rdf-0.5.0-cp311-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: vortex_rdf-0.5.0-cp311-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.11+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00da15af04f126fb557786a0dac10313b17c8cbff0852dd60bcea86388fe0eb9
|
|
| MD5 |
bbd34be2892b3610a97c8ac24641701b
|
|
| BLAKE2b-256 |
bff5bdd4f2fc4c61510016b7c036d94799446b1d50451102416be9fd22bafcf2
|
Provenance
The following attestation bundles were made for vortex_rdf-0.5.0-cp311-abi3-macosx_10_12_x86_64.whl:
Publisher:
release.yml on vortex-rdf/vortex-rdf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vortex_rdf-0.5.0-cp311-abi3-macosx_10_12_x86_64.whl -
Subject digest:
00da15af04f126fb557786a0dac10313b17c8cbff0852dd60bcea86388fe0eb9 - Sigstore transparency entry: 2284901991
- Sigstore integration time:
-
Permalink:
vortex-rdf/vortex-rdf@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vortex-rdf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@57054ae121a3ad26c7b792e71d13212d0fa0526e -
Trigger Event:
workflow_dispatch
-
Statement type: