Extism
Extism is a lightweight framework for building with WebAssembly (Wasm). Itsupports running Wasm code on servers, the edge, CLIs, IoT, browsers andeverything in between. Extism is designed to be "universal" in that it supportsa common interface, no matter where it runs.
Note: One of the primary use cases for Extism isbuilding extensiblesoftware & plugins. You want to be able to execute arbitrary, untrusted codefrom your users? Extism makes this safe and practical to do.
Additionally, Extism adds some extra utilities on top of standard Wasm runtimes.For example, we support persistent memory/module-scope variables, secure &host-controlled HTTP without WASI, runtime limiters & timers, simpler hostfunction linking, and more. Extism users build:
- plug-in systems
- FaaS platforms
- code generators
- web applications
- & much more...
Pick a SDK to import into your program, and refer to the documentation to getstarted:
| Type | Language | Source Code | Package |
|---|---|---|---|
| Rust SDK | https://github.com/extism/extism/tree/main/runtime | Crates.io | |
| JS SDK | https://github.com/extism/js-sdk (supports Web, Node, Deno & Bun!) | NPM | |
| Elixir SDK | https://github.com/extism/elixir-sdk | Hex | |
| Go SDK | https://github.com/extism/go-sdk | Go mod | |
| Haskell SDK | https://github.com/extism/haskell-sdk | Hackage | |
| Java SDK | https://github.com/extism/java-sdk | Sonatype | |
| .NET SDK | https://github.com/extism/dotnet-sdk (supports C# & F#!) | Nuget | |
| OCaml SDK | https://github.com/extism/ocaml-sdk | opam | |
| Perl SDK | https://github.com/extism/perl-sdk | N/A | |
| PHP SDK | https://github.com/extism/php-sdk | Packagist | |
| Python SDK | https://github.com/extism/python-sdk | PyPi | |
| Ruby SDK | https://github.com/extism/ruby-sdk | RubyGems | |
| Zig SDK | https://github.com/extism/zig-sdk | N/A | |
| C SDK | https://github.com/extism/extism/tree/main/libextism | N/A | |
| C++ SDK | https://github.com/extism/cpp-sdk | N/A |
Extism Hosts (running the SDK) must execute WebAssembly code that has a PDKlibrary compiled in to the.wasm binary. PDKs make it easy for plug-in /extension code authors to read input from the host and return data back, readprovided configuration, set/get variables, make outbound HTTP calls if allowed,and more.
Pick a PDK to import into your Wasm program, and refer to the documentation toget started:
| Type | Language | Source Code | Package |
|---|---|---|---|
| Rust PDK | https://github.com/extism/rust-pdk | Crates.io | |
| JS PDK | https://github.com/extism/js-pdk | N/A | |
| Go PDK | https://github.com/extism/go-pdk | Go mod | |
| Haskell PDK | https://github.com/extism/haskell-pdk | Hackage | |
| AssemblyScript PDK | https://github.com/extism/assemblyscript-pdk | NPM | |
| .NET PDK | https://github.com/extism/dotnet-pdk (supports C# & F#!) | https://www.nuget.org/packages/Extism.Pdk | |
| C PDK | https://github.com/extism/c-pdk | N/A | |
| Zig PDK | https://github.com/extism/zig-pdk | N/A |
If you experience any problems or have any questions, please join ourDiscord and let us know. Our community is veryresponsive and happy to help get you started.
Head to theproject website for more information and docs.Also, consider reading anoverview of Extismand its goals & approach.
Thank you for considering a contribution to Extism, we are happy to help youmake a PR or find something to work on!
The easiest way to start would be to join theDiscord or open an issue on theextism/proposals issue tracker, whichcan eventually become an Extism Improvement Proposal (EIP).
For more information, please read theContributing guide.
Extism is an open-source product from the team at:
Reach out and tell us what you're building! We'd love to help:hello@dylibso.com
Popular repositoriesLoading
Repositories
- extism Public
The framework for building with WebAssembly (wasm). Easily & securely load wasm modules, move data, call functions, and build extensible apps.
Uh oh!
There was an error while loading.Please reload this page.
extism/extism’s past year of commit activity Uh oh!
There was an error while loading.Please reload this page.
extism/moonbit-pdk’s past year of commit activity Uh oh!
There was an error while loading.Please reload this page.
extism/chicory-sdk’s past year of commit activity - dotnet-sdk Public
Extism .NET Host SDK - easily run WebAssembly modules / plugins from C# and F# applications
Uh oh!
There was an error while loading.Please reload this page.
extism/dotnet-sdk’s past year of commit activity Uh oh!
There was an error while loading.Please reload this page.
extism/dotnet-pdk’s past year of commit activity Uh oh!
There was an error while loading.Please reload this page.
extism/plugins’s past year of commit activity - perl-sdk Public
Extism Perl Host SDK - easily run WebAssembly modules / plugins from Perl applications
Uh oh!
There was an error while loading.Please reload this page.
extism/perl-sdk’s past year of commit activity Uh oh!
There was an error while loading.Please reload this page.
extism/java-sdk’s past year of commit activity
Top languages
Loading…
Uh oh!
There was an error while loading.Please reload this page.
Most used topics
Loading…
Uh oh!
There was an error while loading.Please reload this page.
