Skip to main content

quarb

Python bindings for the Quarb query engine — import quarb, plus qua, its command-line face. Quarb reads structured text as an arbor — a tree-spanned graph — and runs one query language over all of it, generalizing what XPath does for XML and jq does for JSON to JSON, YAML, TOML, CSV/TSV, XML, HTML, and Markdown alike. Try it live in the playground.

Install

pip install quarb

This installs the quarb Python module and the qua command (the language is Quarb; qua is its CLI).

Wheels are published for Linux (x86_64, aarch64), macOS (arm64, x86_64), and Windows (x86_64). The extension is built against PyO3's stable ABI (abi3-py38); a single wheel covers CPython 3.8 and later.

The qua command

The entry point covers what the bindings cover — one query over a text document:

qua '/books/*[/price:: > 20]/title::' store.json
echo '{"users":[{"name":"ada"}]}' | qua -f json '/users/*/name::'

Beyond text, quarb.open(path) dispatches on kind over the full local fleet — SQLite, kaiv (typed units), the filesystem (descend=True grafts parseable leaves), git (git:PATH), archives, XLSX, and source code — and quarb.mount([a, b, ...]) mounts several sources under one root so a single query joins across them (a YAML file <=> a SQLite database). The networked adapters — Postgres, MySQL, BigQuery, Neo4j, object stores, mail — and DuckDB live in the Rust binary: cargo install qua.

Quick start

import quarb

doc = quarb.loads("""{
  "books": [
    {"title": "The Odyssey", "price": 25},
    {"title": "The Iliad",  "price": 18}
  ]
}""", "json")

doc.values('/books/*[/price:: > 20]/title::')
# ['The Odyssey']

doc.value('/books/*/price:: @| mean')
# 21.5

doc.records('/books/* | %(t = /title::; p = /price::)')
# [{'t': 'The Odyssey', 'p': 25}, {'t': 'The Iliad', 'p': 18}]

doc.plan('/books/*')                 # the static plan, as kaiv
doc.values('/books/*/title::', budget='nodes=1')
# ValueError: refused: the plan estimates 2 nodes; the budget allows 1

loads(text, format) / load(path) parse once into a Document, queried many times. Results come back typed: ints, floats, strings, None for null, tz-aware datetime for instants, timedelta for durations, Quantity for unit-carrying values, dicts for records. Formats: json, yaml, toml, csv, tsv, xml, html, markdown.

The lower-level quarb.run(query, text, format) and quarb.run_file(query, path) return the result lines as strings — exactly what the qua CLI prints. All errors raise ValueError with the engine's message.

For the query language itself — steps, criteria, readings, patterns, joins — see the user guide and spec.

License

Licensed under either of Apache License, Version 2.0 or the MIT license at your option. Both texts are bundled in the package.

Jupyter

%load_ext quarb.ipython
%quarb_mount fleet.daiv
%quarb /@hosts/*[::power > 0.2kW]::name

%%quarb [NAME] runs a cell-sized query against a named mount; results render as HTML tables, iterate as typed values (quantities keep magnitude + unit), and convert with .df / .df_magnitudes().

For a notebook where every cell is a query, install the dedicated kernel and pick Quarb in the launcher:

python -m quarb.kernel install
python -m quarb.kernel demo      # writes quarb-demo.ipynb to try

Cells are queries; %mount, %connect, %use, %docs, %translate, and %python (an escape hatch — the rest of the cell is Python, with the live session and the last result _ in scope) are the directives. Tab-completion offers the mounted arbor's real child names, and the bundled JupyterLab extension highlights Quarb syntax in cells automatically. %connect NAME PATH... (magic: %quarb_connect) attaches to a qua --resident daemon — for arbors too large to rebuild per notebook, queried from a standing session. pip install quarb[jupyter] pulls IPython, pandas, and the kernel runtime.

Metadata

Release files for quarb 0.38.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 quarb 0.38.0
File Size Uploaded
quarb-0.38.0.tar.gz 1.9 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for quarb 0.38.0
File
quarb-0.38.0-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
quarb-0.38.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details
quarb-0.38.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 abi3 Linux glibc 2.17+ ARM64 Details
quarb-0.38.0-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details
quarb-0.38.0-cp38-abi3-macosx_10_12_x86_64.whl CPython 3.8 abi3 macOS 10.12+ x86-64 Details

Total release size: 79.3 MB

Release files / quarb-0.38.0.tar.gz

Download URL quarb-0.38.0.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
63c868f1b0d36eb2af09ad0aaa367c86b0335423bf831c19e2744fa7c772a7f8
BLAKE2b-256 checksum
How to use checksums
855893884f20dd9649bc5e5567d496158ff96a01ec92e3ecc5ec52c337e2f482
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / quarb-0.38.0-cp38-abi3-win_amd64.whl

Download URL quarb-0.38.0-cp38-abi3-win_amd64.whl
Size 15.8 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
ed8dbae20730b0fe9ede932b38271d24aa98d91a313bca662ef6bc453d38e660
BLAKE2b-256 checksum
How to use checksums
d8eecb0e4db5a7ddb21a3b7cc5ee8e4412715bda07224c14b08e72f0b43cbcf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / quarb-0.38.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL quarb-0.38.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 16.3 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
1fd2871f453fc45a1e4ce5d1318be078d8a8802c8a6839e7b79601d268a60a82
BLAKE2b-256 checksum
How to use checksums
3ac23632f67602cae6d44986e159862b593fe44d11d1ed71996147f3ce66f90d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / quarb-0.38.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL quarb-0.38.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 15.3 MB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
99c10a17fb2f71b24e0434e73b47b9dd273ff57944aa5efdd65746f5022007db
BLAKE2b-256 checksum
How to use checksums
2a7f8c0d3cbbbaba7ca36aea42a329981c25c3914467f98e5f50099ac8b92e0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / quarb-0.38.0-cp38-abi3-macosx_11_0_arm64.whl

Download URL quarb-0.38.0-cp38-abi3-macosx_11_0_arm64.whl
Size 14.6 MB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0ba87eba47365e820a2c7978596a23ce10257907045ed7d4a608e93e77a48f00
BLAKE2b-256 checksum
How to use checksums
a2201dcea4a7ba1efa8933a81b8bbae2aea68c826523393985c9d21fef1d7067
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / quarb-0.38.0-cp38-abi3-macosx_10_12_x86_64.whl

Download URL quarb-0.38.0-cp38-abi3-macosx_10_12_x86_64.whl
Size 15.3 MB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
59c6dcc9193ae9e022153d4f8916f5439f697a1c1acca22b8522a03222677298
BLAKE2b-256 checksum
How to use checksums
986fd9538adbb57ca25293e124bf7a85dc74e1cd5676516600fa335b6f5d07e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.38.1

6 release files

This release

0.38.0 This release

6 release files

0.37.0

6 release files

0.36.0

6 release files

0.35.0

6 release files

0.30.0

6 release files

0.27.0

6 release files

0.26.0

6 release files

0.25.0

6 release files

0.24.0

6 release files

0.16.0

6 release files

0.15.0

6 release files

0.14.0

6 release files

0.13.0

6 release files

0.12.0

6 release files

0.11.0

6 release files

0.10.0

6 release files

0.9.0

6 release files

0.6.0

6 release files

0.5.0

6 release files

0.4.0

6 release files

0.3.6

6 release files

0.3.5

6 release files

0.3.4

6 release files

0.3.3

6 release files

0.3.2

6 release files

0.3.1

6 release files

0.3.0

6 release files

0.2.0

6 release files

0.1.1

6 release files

0.1.0

6 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