The Extism CLI can be used to generate or execute Extism plugins and manage libextism installations.
curl https://get.extism.org/cli | sh
See the help output for more options:
curl https://get.extism.org/cli | sh -s -- -h
go install github.com/extism/cli/extism@latest
nix-shell -p extism-cli
You can also download and extract the latest release from https://github.com/extism/cli/releases
To quickly start writing an Extism plugin in any of the supported PDK languages,
using extism
CLI to generate minimal boilerplate may be helpful:
mkdir js-plugin && cd js-plugin
extism generate plugin
Select a PDK language to use for your plugin:
1. Rust
> 2. JavaScript
3. Go
4. Zig
5. C#
6. F#
7. C
8. Haskell
9. AssemblyScript
# or pass a path to the output via `-o`, see more options running `extism generate -h`
This will output a quickstart plugin project with the necessary configuration and dependencies ready. If no output directory was specified, the current directory will be used.
NOTE:: You may still need to install language tools such as compilers or other system dependencies to compile the plugin to WebAssembly.
To further improve this, we will eventually include a Dockerfile
in each
generated project, so a build environment can be easily created with all tools
necessary. If you're interested in contributing to this effort, please join us
on Discord, and check out the PDK template repository of
interest, listed in
pdk-templates.json
The following will call the count_vowels
function in the count_vowels.wasm
module with the input "qwertyuiop":
PLUGIN_URL="https://github.com/extism/plugins/releases/latest/download/count_vowels.wasm"
extism call $PLUGIN_URL count_vowels --input qwertyuiop
Note: The first parameter to
call
can also be a path to a Wasm file on disk.
See extism call --help
for a list of all the flags
To list the available libextism versions:
extism lib versions
To list the available triples for a version:
extism lib versions v0.0.1-alpha
To install the latest version of libextism
to /usr/local
on macOS and Linux
and .
on Windows, this will overwrite any existing installation at the same
path:
sudo PATH=$PATH env extism lib install
To install to $HOME/.local
:
extism lib install --prefix ~/.local
To install the latest build from github:
sudo PATH=$PATH env extism lib install --version git
To uninstall the shared object and header installed in /usr/local
:
sudo PATH=$PATH env extism lib uninstall
Or from another prefix:
extism lib uninstall --prefix ~/.local
The lib check
command will print the version of the installed libextism
library:
extism lib check