Skip to main content

Python SDK for building Pointiv WASM extensions

Project description

pointiv-extension-sdk

Python SDK for Pointiv WASM extensions.

Install

pip install pointiv-extension-sdk

Setup

extism-py requires @extism.import_fn host bindings in the compiled entry file. Declare them in host_bindings.py, wire the SDK with bind, then build a merged entry:

# host_bindings.py
import extism
from pointiv_extension_sdk import bind

@extism.import_fn("extism:host", "pointiv_storage_read")
def pointiv_storage_read(key: str) -> str: pass

@extism.import_fn("extism:host", "pointiv_storage_write")
def pointiv_storage_write(key: str, value: str): pass

@extism.import_fn("extism:host", "pointiv_storage_delete")
def pointiv_storage_delete(key: str): pass

bind.storage_hosts(pointiv_storage_read, pointiv_storage_write, pointiv_storage_delete)
cat host_bindings.py main.py > entry.py
extism-py entry.py -o extension.wasm

See the Python starter for a full example.

Build to WASM with extism-py, then set runtime: "wasm" and main: "extension.wasm" in pointiv-extension.json.

APIs

Module Permission What it does
storage storage Per-extension key/value store
clipboard clipboard_read Read clipboard
ai ai LLM completion
http network Outbound HTTP
google_calendar google_calendar Create Calendar events
google_gmail google_gmail Send Gmail
log none Log to ~/.pointiv/trace.jsonl

Calls without permission fail safely.

Python/WASM limitations

extism-py cannot call zero-argument host functions reliably. These APIs raise NotImplementedError in Python/WASM builds:

  • storage.list()
  • clipboard.read()

Use storage.read() / storage.write() / storage.delete() instead. Host functions use the extism:host namespace (Pointiv registers both extism:host and extism:host/user).

Manifest

{
  "name": "My Extension",
  "description": "What it does",
  "version": "1.0.0",
  "author": "your-name",
  "keywords": ["tag"],
  "runtime": "wasm",
  "main": "extension.wasm",
  "permissions": ["storage", "network", "google_calendar", "google_gmail"]
}

License

MIT

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

pointiv_extension_sdk-0.3.4.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

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

pointiv_extension_sdk-0.3.4-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file pointiv_extension_sdk-0.3.4.tar.gz.

File metadata

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

File hashes

Hashes for pointiv_extension_sdk-0.3.4.tar.gz
Algorithm Hash digest
SHA256 7a6bfd13825d2d49d0309da79555f384e53adb3d995632bb60c9b56088c2ff78
MD5 a8e0374ef11d10bade2d858b13cea6da
BLAKE2b-256 db9d32da6ddee3b62060ae30cabb08c06baeb0d8c5e46ff0476836eae8a1a271

See more details on using hashes here.

File details

Details for the file pointiv_extension_sdk-0.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for pointiv_extension_sdk-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 68b237ec671c23d9aab3854ba0680595d9eccf7a4a6ad7a4fb68536082562789
MD5 3ed1c86c1091881a43a9d7fd1775cd64
BLAKE2b-256 c6f00dfe898e81140430af9c32f7bfb1e1894490aeb6a17c17de389cf08946f9

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