Skip to main content

PicoVolt for Python

Python bindings for the PicoVolt embedded database engine, via its C ABI and ctypes. Pure Python: no compiler is needed on the Python side, only the prebuilt shared library.

Like the engine itself, this is for embedded use (single writer, SQL with MVCC time-travel, compile-to-.pvdb), not a drop-in for a concurrent server's primary database.

Install

Platform wheels bundle the native library, so released builds install without a Rust compiler:

python -m pip install picovolt

Build the shared library from the repository root:

cargo build --release --features capi

That produces target/release/libpicovolt.so (Linux), target/release/libpicovolt.dylib (macOS), or target/release/picovolt.dll (Windows). When you run from a checkout, the wrapper finds it in target/release automatically. Otherwise set PICOVOLT_LIB to the file:

export PICOVOLT_LIB=/path/to/libpicovolt.so

Usage

from picovolt import Database

with Database.open_memory() as db:
    db.query("CREATE TABLE users (id, name)")
    db.query("INSERT INTO users VALUES (1, 'alice')")
    print(db.query("SELECT * FROM users"))
    # {'columns': ['id', 'name'], 'rows': [[1, 'alice']]}

query returns the already-parsed result (a dict): {"columns": [...], "rows": [[...]]} for a SELECT, {"mutated": n} for a mutation, or {"done": True} otherwise. Other methods: open_dev, open_prod, from_bytes, export, begin, commit, rollback, in_transaction, current_tx, and the module-level version(). A PEP 249 adapter is available as picovolt.dbapi2.

Run the demo:

python example.py

Release wheels are built for Linux, macOS, and Windows by GitHub Actions. Source checkouts can instead use PICOVOLT_LIB to select a locally built library.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

picovolt-1.6.0-py3-none-win_amd64.whl (447.0 kB view details)

Uploaded Python 3Windows x86-64

picovolt-1.6.0-py3-none-manylinux_2_28_x86_64.whl (620.3 kB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

picovolt-1.6.0-py3-none-macosx_10_9_universal2.whl (513.5 kB view details)

Uploaded Python 3macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file picovolt-1.6.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: picovolt-1.6.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 447.0 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for picovolt-1.6.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8cf92ff015c469324db221f910a7fcd1903793afe0e955b099f9975af50396cd
MD5 4af80b5a1f77551a9dd2703ebdd4c0a5
BLAKE2b-256 fee49c04224daf78b92a1ee16cbfee32a7325f2eed1f9197c7d498cf2be14e99

See more details on using hashes here.

Provenance

The following attestation bundles were made for picovolt-1.6.0-py3-none-win_amd64.whl:

Publisher: python-wheels.yml on MiniJe/picovolt

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

File details

Details for the file picovolt-1.6.0-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for picovolt-1.6.0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 555a4090075a9c90daaa9672d98e54850cdf29e996d986536011c0c9c3532179
MD5 4f08251e1e428d19dda08b9cebf86d27
BLAKE2b-256 f0ba150db06170608697869aedc57af02d3d529113cb1b0d3117d3086985dcd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for picovolt-1.6.0-py3-none-manylinux_2_28_x86_64.whl:

Publisher: python-wheels.yml on MiniJe/picovolt

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

File details

Details for the file picovolt-1.6.0-py3-none-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for picovolt-1.6.0-py3-none-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a05adf52c41848a2bbfc6a0f6e50f15c90243ed43878d26be128120b59d9153f
MD5 2e5ec92e0325868a5ed1320b216d53bf
BLAKE2b-256 df9611fa3b0ddd4ad0e69c44cf13a07afb79bf8c9ed6d6045b10399c3c740655

See more details on using hashes here.

Provenance

The following attestation bundles were made for picovolt-1.6.0-py3-none-macosx_10_9_universal2.whl:

Publisher: python-wheels.yml on MiniJe/picovolt

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

Release history Release notifications | RSS feed

1.8.1

3 files

1.8.0

3 files

1.7.1

3 files

1.7.0

3 files

This release

1.6.0 This release

3 files

1.5.0

3 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