Skip to main content

vortex-rdf

PyPI

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

vortex_rdf-0.5.0.tar.gz (209.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vortex_rdf-0.5.0-cp311-abi3-win_amd64.whl (11.5 MB view details)

Uploaded CPython 3.11+Windows x86-64

vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

vortex_rdf-0.5.0-cp311-abi3-macosx_11_0_arm64.whl (10.3 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

vortex_rdf-0.5.0-cp311-abi3-macosx_10_12_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

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

Hashes for vortex_rdf-0.5.0.tar.gz
Algorithm Hash digest
SHA256 ce10a03888407129d51e3f48aa78d6e959ddd96ce22057ba4650604dff6f96e6
MD5 dfe6e2cb07e453272abf9eb386ebaf52
BLAKE2b-256 2de025f49803f2daa08f3e67550b816e3409e3b94611677ae9ff95e7b10b086b

See more details on using hashes here.

Provenance

The following attestation bundles were made for vortex_rdf-0.5.0.tar.gz:

Publisher: release.yml on vortex-rdf/vortex-rdf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for vortex_rdf-0.5.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f69009309317de15936038be90c1f563938d3cc6053b48195e426a121975c244
MD5 6c4455bca39af954c15443233855137a
BLAKE2b-256 0ef44a0a6418122573c2d329658291968068b4af5f0344b7368634c06ac71ae8

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2de7b322f227e5e7b8f06da428cdba15aa9c2ce18719af2be6cac2fb201f13f4
MD5 fae85ff5e086d962c0a05b9e16c3ccc8
BLAKE2b-256 d912b53cc8adb5f30de718eacc17659f8f8fad2f948e80657f0ebfc7461134b5

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vortex_rdf-0.5.0-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 32a2027720e1c3955abc215b4a3618e39e925567df3f31c58e8a6f1e6103b835
MD5 3d95efec215f8c0c1b1e25b092b7a490
BLAKE2b-256 7cf523c0676a488d63ee9cbb859020f4a74221d3177787c6a30995e75a14ef90

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vortex_rdf-0.5.0-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vortex_rdf-0.5.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9556be5d2acd7535716900c42383cdf2c76fe5471e8c8e7939a24cea12c30354
MD5 80335d62b07e64e88d13f622e446926e
BLAKE2b-256 a0d7c5171a092f1763fe77c7de14e077a028e3c283ebda2dbfa62f8c02087155

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vortex_rdf-0.5.0-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for vortex_rdf-0.5.0-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 00da15af04f126fb557786a0dac10313b17c8cbff0852dd60bcea86388fe0eb9
MD5 bbd34be2892b3610a97c8ac24641701b
BLAKE2b-256 bff5bdd4f2fc4c61510016b7c036d94799446b1d50451102416be9fd22bafcf2

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.10.0

6 files

This release

0.5.0 This release

6 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