The universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for Go, Ruby, Python, JavaScript, Rust, C, C++, OCaml, Haskell, PHP, Elixir, .NET, Java, Zig, D, & more (others coming soon).
Plug-in development kits (PDK) for plug-in authors supported in Rust, AssemblyScript, Go, C/C++, Haskell, JavaScript, C#, F# and Zig.
Add a flexible, secure, and bLaZiNg FaSt plug-in system to your project. Server, desktop, mobile, web, database -- you name it. Enable users to write and execute safe extensions to your software in 3 easy steps:
Import an Extism Host SDK into your code as a library dependency.
Identify the place(s) in your code where some arbitrary logic should run (the plug-in!), returning your code some results.
Load WebAssembly modules at any time in your app's lifetime and Extism will execute them in a secure sandbox, fully isolated from your program's memory.
Please note: This project still under active development and APIs are still changing. We are aiming for a stable 1.0 release in January, 2024. The main branch may have breaking changes until that point, but if you starting today, a 1.0.0-rcx release is the best place to start.
If you experience any problems or have any questions, please join our Discord and let us know. Our community is very responsive and happy to help get you started.
Head to the project website for more information and docs. Also, consider reading an overview of Extism and its goals & approach.
Thank you for considering a contribution to Extism, we are happy to help you make a PR or find something to work on!
The easiest way to start would be to join the Discord or open an issue on the extism/proposals
issue tracker, which can eventually become an Extism Improvement Proposal (EIP).
Extism is an open-source product from the team at:
Reach out and tell us what you're building! We'd love to help.