Skip to main content

Python SDK for the Volt scientific computing platform

Project description

voltsdk

Python SDK for the Volt scientific computing platform.

Installation

pip install voltsdk

pip will select the platform wheel that matches the host operating system and architecture. VoltSDK wheels bundle the native Volt runtime under voltsdk/native/{bin,lib,share}, so users do not need to install the shipped TBB, hwloc, and related shared libraries manually for the bundled binaries.

Supported wheel targets published by CI:

  • linux_x86_64 built on ubuntu-24.04
  • macosx_14_0_arm64
  • win_amd64

Linux wheels target the Ubuntu 24.04 build baseline. Older glibc releases are not supported; document that requirement in downstream READMEs when you ship Linux-native workflows.

Optional extras:

pip install "voltsdk[visualization]"
pip install "voltsdk[notebook]"

Authenticated client

from voltsdk import VoltClient

client = VoltClient(
    secret_key="your-secret-key",
    base_url="https://api.example.com",
)

Plugin hub

VoltSDK ships a Hugging Face-style plugin hub. Plugins live in a static registry; bundles are downloaded and cached on first use:

from voltsdk import PluginHub

hub = PluginHub()                          # default registry, ~/.cache/volt
print(hub.list())                          # publisher-qualified marketplace listing

ptm = hub.get("voltlabs@polyhedral-template-matching")
result = ptm.run(
    "frame.dump",
    output_base="out/frame",
    crystalStructure="FCC",
    rmsd=0.1,
)
print(result.artifact("annotatedDump"))

The same hub is exposed on an authenticated client via client.plugins.

When a plugin subprocess is launched, VoltSDK also prepends its bundled native runtime directories to PATH, LD_LIBRARY_PATH, and DYLD_LIBRARY_PATH. This lets downloaded plugin bundles reuse the libraries installed with the wheel.

Configuration

Variable Purpose Default
VOLT_PLUGIN_REGISTRY Registry base URL https://server.voltcloud.dev/plugin-registry
VOLT_CACHE_DIR Local plugin cache $XDG_CACHE_HOME/volt

Pinning versions

Plugin identifiers are always publisher-qualified: publisher@plugin.

hub.get("voltlabs@opendxa", "1.0.0")  # explicit version
hub["voltlabs@opendxa"]               # shorthand for the latest version
hub.install("voltlabs@opendxa")       # pre-download the latest bundle
hub.uninstall("voltlabs@opendxa")     # drop every cached version

Registry layout

The hub expects a static index plus per-platform bundles:

<registry>/index.json
<registry>/<key>/<version>/<os>-<arch>.tar.zst

index.json example:

{
  "plugins": {
    "voltlabs": {
      "opendxa": {
        "publisher": "voltlabs",
        "latest": "1.0.0",
        "versions": {
          "1.0.0": {
            "linux-x86_64": {
              "url": "opendxa/1.0.0/linux-x86_64.tar.zst",
              "sha256": "..."
            }
          }
        }
      }
    }
  }
}

Each bundle is a flat archive containing plugin.json, bin/<binary>, and optional lib/ and scripts/ directories.

Project details


Download files

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

Source Distribution

voltsdk-2.2.2.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

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

voltsdk-2.2.2-py3-none-any.whl (38.1 kB view details)

Uploaded Python 3

File details

Details for the file voltsdk-2.2.2.tar.gz.

File metadata

  • Download URL: voltsdk-2.2.2.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for voltsdk-2.2.2.tar.gz
Algorithm Hash digest
SHA256 53d91a48bd4905263f971ba9da998143a196a2976febc70f947a2def4d590970
MD5 a8bfb631459cd1129938f66f4754f884
BLAKE2b-256 b61afa516b4c2e33993f9bff3aa11e47cca42e21bfc801a131c3d37a92ffc3f9

See more details on using hashes here.

File details

Details for the file voltsdk-2.2.2-py3-none-any.whl.

File metadata

  • Download URL: voltsdk-2.2.2-py3-none-any.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for voltsdk-2.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 25269ef706e763932030cc87a32d2f367d568ab520a6333c69e1cc4c0dab5470
MD5 6cabaa8f7655483c574d16b65043435c
BLAKE2b-256 1959f39b9e36da7494f859bfa5447149c3ca09f8f2be10572ade40a29b0132b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page