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(). A query closing in a drawing renders rich too: @| tree as a folding outline (every node with children opens and closes, with expand all / collapse all on top), @| histogram as a bar grid — the text the terminal prints stays the plain form (Document.values_html answers both, quarb.closes_with_drawing says when a query has a drawing).

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.50.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.50.0
File Size Uploaded Provenance Actions
quarb-0.50.0.tar.gz 2.4 MB With provenance Details for quarb-0.50.0.tar.gz

Built distributions (wheels)

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

Total release size: 109.3 MB

Release files / quarb-0.50.0.tar.gz

Download URL quarb-0.50.0.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
1684d9a24c7fc54d6930c190b73c9cfc2a59e3cf2b8a0df361e655d3a9360cd9
BLAKE2b-256 checksum
How to use checksums
8a41e26c4ccd1540378f65928774f8aeb41500c63b0696bc9ff457f446ac648f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

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

Download URL quarb-0.50.0-cp38-abi3-win_amd64.whl
Size 22.5 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
4cd7327bcd39d0c292147e3117d62f9d56743645dc63a19e5a9687c70004e5f7
BLAKE2b-256 checksum
How to use checksums
6010154c13cc7941a026dbda42ec944358b36ca0ec05b9f9cfb7ec715626a289
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

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

Download URL quarb-0.50.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 22.4 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
a8b3c2f21311bbe7a23ee7bbc8e9c3c3e9c56466078ef2739903b430ba4cb513
BLAKE2b-256 checksum
How to use checksums
6e0f5f382f9f95bf1cfef98413d7a5d0cf27335636cbb3dae5e365fc3120b8a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

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

Download URL quarb-0.50.0-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 20.9 MB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
780b41c44431d5816530e83d232a75c3f821209433121cfa35eb402201755e7d
BLAKE2b-256 checksum
How to use checksums
f6cf61cf3b8fbf1bea8c0e20ab63eafab6f19aa6d058d7b94f3af573bf22a4b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

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

Download URL quarb-0.50.0-cp38-abi3-macosx_11_0_arm64.whl
Size 20.1 MB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2e41982d0c93ff050b58ed74b5f57c1fa72450164a29f01682d987d91ba01dca
BLAKE2b-256 checksum
How to use checksums
2b0471b9940f4cc3bb1969f7ac796d85c67391a5ee0cb51586975fb0ec8cc21c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

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

Download URL quarb-0.50.0-cp38-abi3-macosx_10_12_x86_64.whl
Size 21.1 MB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6f8ca2a4c9646d5bed151eb415d20e1a46317d261f18a5f2333c82644e830434
BLAKE2b-256 checksum
How to use checksums
4c6121dd6f88c79c95853dae01f0dc1577ce4e993e2d8c9d31e6723d7052a659
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Security for quarb 0.50.0

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.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for quarb-0.50.0.tar.gz

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 Nov 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.50.0 This release

6 release files Full provenance

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