The Universal Plug-in System. Extend anything with WebAssembly (wasm).
HTTP calls will be disallowed by default now. If you want to enable HTTP you need to specify the hosts that the plug-in is allowed to communicate with. If you want to allow all hosts you can set it to {allowed_hosts: ["*"]}
in the manifest. However, this isn't recommended unless you have some trust in the plug-in or are controlling the networking by some other means.
In this PR we are creating an implicit context so people don't need to know about it if they don't care. In some languages function signatures have changed to make context an optional argument when creating a plug-in.
extism_http_request
error handling by @zshipko in https://github.com/extism/extism/pull/290
__wasm_call_ctors
when available and not calling _start
by @zshipko in https://github.com/extism/extism/pull/311
Context
by @zshipko in https://github.com/extism/extism/pull/335
UserData::make_copy
instead of UserData::new_pointer
to preserve is_any
field by @zshipko in https://github.com/extism/extism/pull/346
Full Changelog: https://github.com/extism/extism/compare/v0.3.0...v0.4.0
Full Changelog: https://github.com/extism/extism/compare/v0.2.0...v0.3.0
_start
by @zshipko in https://github.com/extism/extism/pull/135
allowed_paths
to specify preopened directories in WASI by @zshipko in https://github.com/extism/extism/pull/137
Dir::open_ambient_dir
instead of Dir::from_std_file
by @zshipko in https://github.com/extism/extism/pull/140
allowed_hosts
is empty by @zshipko in https://github.com/extism/extism/pull/143
allowed_paths
manifest key in SDKs by @zshipko in https://github.com/extism/extism/pull/144
timeout_ms
field to SDKs by @zshipko in https://github.com/extism/extism/pull/165
Extism.Manifest.HTTPRequest
by @zshipko in https://github.com/extism/extism/pull/170
extism
package from extism_nif
for local development by @zshipko in https://github.com/extism/extism/pull/180
cgo.Handle
to protect Go pointers being passed to C callbacks by @zshipko in https://github.com/extism/extism/pull/220
wasm/code.wasm
when possible by @zshipko in https://github.com/extism/extism/pull/219
Full Changelog: https://github.com/extism/extism/compare/v0.1.0...v0.2.0
Full Changelog: https://github.com/extism/extism/compare/v0.0.1...v0.1.0
Extism is the universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for Go, Ruby, Python, Node, Rust, C, C++, OCaml, Haskell, PHP & more (others coming soon).
This is a preview to share progress on a usable version while we wrap up some docs, automation, package distribution, installation process, etc.
Try the extism
CLI:
README.md
Or:
make build
).libextism.{so|dylib}
and extism.h
into your library and include paths respectively. (sudo make install
does this)Expect the entire process above to be simplified away soon...
extism-runtime
by @zshipko in https://github.com/extism/extism/pull/65
extism_http_status_code
to get the status code of the last HTTP request + fixes for clippy by @zshipko in https://github.com/extism/extism/pull/81
_start
functions by @zshipko in https://github.com/extism/extism/pull/94
Full Changelog: https://github.com/extism/extism/compare/v0.0.1-rc.6...v0.0.1
Extism is the universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for Go, Ruby, Python, Node, Rust, C, C++, OCaml, Haskell, PHP & more (others coming soon).
This is a preview to share progress on a usable version while we wrap up some docs, automation, package distribution, installation process, etc.
Try the extism
CLI:
README.md
Or:
make build
).libextism.{so|dylib}
and extism.h
into your library and include paths respectively. (sudo make install
does this)Expect the entire process above to be simplified away soon...
extism_plugin_config
when wasi is disabled by @zshipko in https://github.com/extism/extism/pull/36
Full Changelog: https://github.com/extism/extism/compare/v0.0.1-rc.5...v0.0.1-rc.6
Extism is the universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for Go, Ruby, Python, Node, Rust, C, C++, OCaml, Haskell, PHP & more (others coming soon).
This is a preview to share progress on a usable version while we wrap up some docs, automation, package distribution, installation process, etc.
Try the extism
CLI:
README.md
Or:
make build
).libextism.{so|dylib}
and extism.h
into your library and include paths respectively. (sudo make install
does this)Expect the entire process above to be simplified away soon...
nn
feature to enable wasi-nn
for plugins that enable WASI by @zshipko in https://github.com/extism/extism/pull/29
extism_version
to Host SDK and all clients by @bhelx in https://github.com/extism/extism/pull/30
Full Changelog: https://github.com/extism/extism/compare/v0.0.1-rc.4...v0.0.1-rc.5
Extism is the universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for Go, Ruby, Python, Node, Rust, C, C++, OCaml, Haskell, PHP & more (others coming soon).
This is a preview to share progress on a usable version while we wrap up some docs, automation, package distribution, installation process, etc.
Try the extism
CLI:
README.md
Or:
make build
).libextism.{so|dylib}
and extism.h
into your library and include paths respectively. (sudo make install
does this)Expect the entire process above to be simplified away soon...
scripts
directory with SDK coverage script by @zshipko in https://github.com/extism/extism/pull/16
allowed_hosts
configuration option by @zshipko in https://github.com/extism/extism/pull/23
Full Changelog: https://github.com/extism/extism/compare/v0.0.1-rc.3...v0.0.1-rc.4
Extism is the universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for Go, Ruby, Python, Node, Rust, C, C++, OCaml, Haskell, PHP & more (others coming soon).
This is a preview to share progress on a usable version while we wrap up some docs, automation, package distribution, installation process, etc.
Try the extism
CLI:
README.md
Or:
make build
).libextism.{so|dylib}
and extism.h
into your library and include paths respectively. (sudo make install
does this)Expect the entire process above to be simplified away soon...
Full Changelog: https://github.com/extism/extism/compare/v0.0.1-rc.2...v0.0.1-rc.3
Extism is the universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for Go, Ruby, Python, Node, Rust, C, C++, OCaml, Haskell, PHP & more (others coming soon).
This is a preview to share progress on a usable version while we wrap up some docs, automation, package distribution, installation process, etc.
Try the extism
CLI:
README.md
Or:
make build
).libextism.{so|dylib}
and extism.h
into your library and include paths respectively. (sudo make install
does this)Expect the entire process above to be simplified away soon...
Full Changelog: https://github.com/extism/extism/compare/v0.0.1-gamma...v0.0.1-rc.2
Extism is the universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for Go, Ruby, Python, Node, Rust, C, C++, OCaml, Haskell, PHP & more (others coming soon).
This is a preview to share progress on a usable version while we wrap up some docs, automation, package distribution, installation process, etc.
Try the extism
CLI:
README.md
Or:
make build
).libextism.{so|dylib}
and extism.h
into your library and include paths respectively. (sudo make install
does this)Expect the entire process above to be simplified away soon...