GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - aristidebm/python-sdk: Extism Python Host SDK - easily run WebAssembly modules / plugins from Python applications

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

89 Commits
89 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
docs
docs
 
 
extism
extism
 
 
tests
tests
 
 
wasm
wasm
 
 
.gitignore
.gitignore
 
 
.readthedocs.yaml
.readthedocs.yaml
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
example.py
example.py
 
 
justfile
justfile
 
 
poetry.lock
poetry.lock
 
 
pyproject.toml
pyproject.toml
 
 
setup.cfg
setup.cfg
 
 

Repository files navigation

Extism Python Host SDK

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'}

Installation

Install this package from PyPI:

# using pip
$ pip install extism==1.0.0

# using poetry
$ poetry add extism=^1.0.0

The 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!

Documentation

Check out the docs:

  • Getting Started
  • API docs

Development

Local dev

Install just. Running just test should install all other prerequisites.

Release workflow

  1. Create a semver-formatted git tag (git tag v1.0.0).
  2. Push that tag to the repository (git push origin v1.0.0.)
  3. Wait for the Build workflow to run.
  4. Once the build workflow finishes, go to the releases page. You should see a draft release.
  5. Edit the draft release. Publish the release.
  6. Wait for the Release workflow to run.
  7. Once the release workflow completes, you should be able to pip install extism==${YOUR_TAG} from PyPI.

LICENSE

BSD-3-Clause

About

Extism Python Host SDK - easily run WebAssembly modules / plugins from Python applications

extism.org

Resources

Readme
License
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.