This repo contains the Python package for integrating with the Extism Webassembly framework. Install this library into your Python application host to run Extism WebAssembly guest plug-ins.
import extism import json manifest = {"wasm": [{"url": "https://github.com/extism/plugins/releases/latest/download/count_vowels.wasm"}]} with extism.Plugin(manifest, wasi=True) as plugin: wasm_vowel_count = plugin.call( "count_vowels", "hello world", parse = lambda output: json.loads(bytes(output).decode('utf-8')) ) print(wasm_vowel_count) # {'count': 3, 'total': 3, 'vowels': 'aeiouAEIOU'}Install this package from PyPI:
# using pip $ pip install extism==1.0.0 # using poetry $ poetry add extism=^1.0.0The extism package should install an appropriate extism_sys dependency containing a prebuilt shared object for your system. We support the following targets:
- MacOS 11.0+,
arm64 - MacOS 10.7+,
x86_64 - Manylinux 2.17+,
aarch64 - Manylinux 2.17+,
x86_64 - MUSL Linux 1.2+,
aarch64 - Windows (MSVC),
x86_64
If you need support for a different platform or architecture, please let us know!
Check out the docs:
Install just. Running just test should install all other prerequisites.
- Create a semver-formatted git tag (
git tag v1.0.0). - Push that tag to the repository (
git push origin v1.0.0.) - Wait for the Build workflow to run.
- Once the build workflow finishes, go to the releases page. You should see a draft release.
- Edit the draft release. Publish the release.
- Wait for the Release workflow to run.
- Once the release workflow completes, you should be able to
pip install extism==${YOUR_TAG}from PyPI.