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

To work from a source checkout instead, build the shared library from the repository root:

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, current_tx, and the module-level version().

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.5.0-py3-none-win_amd64.whl (428.1 kB view details)

Uploaded Python 3Windows x86-64

picovolt-1.5.0-py3-none-manylinux_2_28_x86_64.whl (602.9 kB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

picovolt-1.5.0-py3-none-macosx_10_9_universal2.whl (496.5 kB view details)

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

File details

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

File metadata

  • Download URL: picovolt-1.5.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 428.1 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.5.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b71271d975cf2225eb1ed2c887cb67dafc763881e9b95126ebd2b3d65fc882d4
MD5 992661bab09db22b3ca8dcca778be98d
BLAKE2b-256 d913741e4f2233114e8048e0ca4edcc5c11ec332fc0dbaf2322deb1761507033

See more details on using hashes here.

Provenance

The following attestation bundles were made for picovolt-1.5.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.5.0-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for picovolt-1.5.0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6ed08eb2bebd76c8dd7cb9bfae6430447a79ad3d08f62b8e5837987b40093cc
MD5 88da89365867146b1b53f0394d00e7fc
BLAKE2b-256 050b1215e4af7a1b51e57bd494430ee8f2c0a0a2acaae6d5aac7dac7189d4ef7

See more details on using hashes here.

Provenance

The following attestation bundles were made for picovolt-1.5.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.5.0-py3-none-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for picovolt-1.5.0-py3-none-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d34f241a1103ef5db5d96e2a9cad902088c3ff8ad204d4344c44b9d6a936af71
MD5 474eb959f4d0301a591fc5df1c789708
BLAKE2b-256 a65718a23f3f3f93b1f9cd0ae053405199c332e59cad516bfe8b64360a77beeb

See more details on using hashes here.

Provenance

The following attestation bundles were made for picovolt-1.5.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

1.6.0

3 files

This release

1.5.0 This release

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