Skip to content

Releases: extism/extism

v0.5.4

25 Oct 20:47
452bb2f
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.5.3...v0.5.4

v0.5.3

24 Oct 17:30
ec70b0e
Compare
Choose a tag to compare

What's Changed

  • chore: Release elixir v0.5.1 by @bhelx in #496
  • chore: fix elixir release action by @bhelx in #497
  • chore: backport latest kernel changes to stable by @zshipko in #528
  • Release: 0.5.3 stable release by @bhelx in #538

Full Changelog: v0.5.2...v0.5.3

v1.0.0-rc0

16 Oct 17:54
0996101
Compare
Choose a tag to compare
v1.0.0-rc0 Pre-release
Pre-release

Pre-release of Extism v1.0.

Full Changelog: latest...v1.0.0-rc0

v0.5.2

21 Sep 14:44
e89ddd5
Compare
Choose a tag to compare

What's Changed

  • fix(stable): improve the way the kernel calculates how many pages to allocate by @zshipko in #471

Full Changelog: v0.5.1...v0.5.2

v0.5.1

19 Sep 00:09
8feee0c
Compare
Choose a tag to compare

What's Changed

  • fix: Fixes rounding issue in kernel num_pages by @bhelx in #466
  • cleanup(stable): use wasm-strip on extism-runtime.wasm by @zshipko in #467

Full Changelog: v0.5.0...v0.5.1

v0.5.0

24 Aug 00:13
6a15884
Compare
Choose a tag to compare

What's Changed

  • chore: Bump SDK versions for 0.4.0 release by @bhelx in #349
  • fix: ignore already published manifest by @bhelx in #351
  • chore(elixir): Bump to 0.4.0 by @bhelx in #350
  • chore(java): release Java SDK by @bhelx in #352
  • cleanup(ocaml): add bounds on extism-manifest dependency by @zshipko in #354
  • fix(ocaml): update dune-project file by @zshipko in #355
  • chore(deps-dev): Bump @types/node from 20.1.4 to 20.2.3 in /node by @dependabot in #353
  • chore(deps-dev): Bump @types/node from 20.2.3 to 20.2.5 in /node by @dependabot in #358
  • fix: require modules to have exported, bounded memory when manifest memory.max_pages field is set by @zshipko in #356
  • fix(rust): fix lifetime of data returned from Plugin::call by @zshipko in #369
  • chore(deps-dev): Bump @types/jest from 29.5.1 to 29.5.2 in /node by @dependabot in #363
  • chore(deps-dev): Bump typedoc from 0.24.7 to 0.24.8 in /node by @dependabot in #364
  • chore(deps-dev): Bump typescript from 5.0.4 to 5.1.3 in /node by @dependabot in #365
  • chore(deps-dev): Bump @types/node from 20.2.5 to 20.3.0 in /node by @dependabot in #370
  • chore(deps-dev): Bump @types/node from 20.3.0 to 20.3.1 in /node by @dependabot in #371
  • chore: use a range for wasmtime dependency version by @zshipko in #375
  • fix: update for latest Zig by @usdogu in #379
  • chore(deps): Bump rustler from 0.28.0 to 0.29.1 in /elixir by @dependabot in #383
  • chore(deps-dev): Bump ts-jest from 29.1.0 to 29.1.1 in /node by @dependabot in #382
  • chore(deps-dev): Bump @types/node from 20.3.1 to 20.3.3 in /node by @dependabot in #381
  • chore(deps-dev): Bump typescript from 5.1.3 to 5.1.6 in /node by @dependabot in #380
  • chore(deps-dev): Bump jest from 29.5.0 to 29.6.1 in /node by @dependabot in #385
  • chore(deps-dev): Bump prettier from 2.8.8 to 3.0.0 in /node by @dependabot in #386
  • chore(deps-dev): Bump @types/node from 20.3.3 to 20.4.1 in /node by @dependabot in #387
  • chore(deps-dev): Bump ex_doc from 0.29.4 to 0.30.1 in /elixir by @dependabot in #388
  • chore(deps): Bump tough-cookie from 4.1.2 to 4.1.3 in /browser by @dependabot in #389
  • chore(deps-dev): Bump @types/jest from 29.5.2 to 29.5.3 in /node by @dependabot in #392
  • chore(deps-dev): Bump @types/node from 20.4.1 to 20.4.2 in /node by @dependabot in #391
  • chore(deps-dev): Bump ex_doc from 0.30.1 to 0.30.3 in /elixir by @dependabot in #390
  • chore(deps-dev): Bump word-wrap from 1.2.3 to 1.2.4 in /browser by @dependabot in #394
  • feat: Implement parts of the extism runtime in WebAssembly by @zshipko in #384
  • fix(python): store reference to host functions on Plugin by @zshipko in #399
  • fix: Update more SDKs to store a reference to host functions in the Plugin type by @zshipko in #401
  • chore(deps-dev): Update minitest requirement from ~> 5.18.0 to ~> 5.19.0 in /ruby by @dependabot in #402
  • chore(deps-dev): Bump jest from 29.6.1 to 29.6.2 in /node by @dependabot in #403
  • chore(deps-dev): Bump @types/node from 20.4.2 to 20.4.5 in /node by @dependabot in #404
  • feat: Haskell host functions by @zshipko in #400
  • chore(zig): use LazyPath in build.zig by @zshipko in #406
  • chore: update wasmtime bounds to include 11.0 by @zshipko in #405
  • fix: avoid timeout errors outside of extism_plugin_call by @zshipko in #407
  • refactor: Simplify runtime handling by @zshipko in #411
  • chore(deps-dev): Bump ex_doc from 0.30.3 to 0.30.4 in /elixir by @dependabot in #410
  • chore(deps-dev): Bump prettier from 3.0.0 to 3.0.1 in /node by @dependabot in #409
  • chore(deps-dev): Bump @types/node from 20.4.5 to 20.4.8 in /node by @dependabot in #408
  • fix(rust): ensure InternalExt is exported by @zshipko in #413
  • refactor(zig)!: Simplify JSON stringifying by @usdogu in #414
  • chore(deps-dev): Bump ex_doc from 0.30.4 to 0.30.5 in /elixir by @dependabot in #416
  • chore(deps-dev): Bump @types/node from 20.4.8 to 20.5.0 in /node by @dependabot in #415
  • fix(runtime): register all host function imports by @zshipko in #419
  • fix(dotnet): typo in HostFunction constructor that prevents setting Host Function namespace by @mhmd-azeez in #418
  • chore(deps-dev): Bump @types/node from 20.5.0 to 20.5.1 in /node by @dependabot in #423
  • chore(deps-dev): Bump prettier from 3.0.1 to 3.0.2 in /node by @dependabot in #422
  • release: Bump runtime to 0.5.0 by @bhelx in #427
  • chore: bump libextism version by @zshipko in #428
  • fix: remove call to bash from build.rs by @zshipko in #429

Full Changelog: v0.4.0...v0.5.0

Head to https://extism.org for docs and an overview, and chat with us on Discord!

v0.4.0

19 May 18:37
d0f77dd
Compare
Choose a tag to compare

What's Changed

Breaking Changes

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.

All Changes

  • fix: separate ocaml SDK and extism versions when publishing to opam by @zshipko in #283
  • feat: add pycco python doc support by @nilslice in #284
  • fix(zig-sdk): Fix build and improve tests by @usdogu in #291
  • fix: improve extism_http_request error handling by @zshipko in #290
  • fix: remove call to cleanup_timer at exit on windows by @zshipko in #301
  • fix(browser): Fix browser runtime, publish as 0.2.7 by @bhelx in #305
  • chore(deps-dev): Bump typedoc from 0.23.26 to 0.24.1 in /node by @dependabot in #308
  • chore(deps-dev): Bump ex_doc from 0.29.2 to 0.29.4 in /elixir by @dependabot in #302
  • chore(deps-dev): Bump @types/node from 18.15.0 to 18.15.11 in /node by @dependabot in #304
  • chore(deps-dev): Bump prettier from 2.8.4 to 2.8.7 in /node by @dependabot in #293
  • chore(deps-dev): Bump @types/jest from 29.4.0 to 29.5.0 in /node by @dependabot in #288
  • chore(deps-dev): Bump typescript from 4.9.5 to 5.0.4 in /node by @dependabot in #307
  • feat: Add Host Functions support for .NET SDK by @mhmd-azeez in #239
  • fix(zig-sdk): Fix build by @usdogu in #310
  • chore(deps-dev): Bump ts-jest from 29.0.5 to 29.1.0 in /node by @dependabot in #313
  • chore(deps-dev): Bump typedoc from 0.24.1 to 0.24.4 in /node by @dependabot in #314
  • fix!: disallow http requests by default by @zshipko in #315
  • feat: automatically call __wasm_call_ctors when available and not calling _start by @zshipko in #311
  • feat: add support for host functions to browser runtime by @zshipko in #306
  • chore(deps-dev): Bump prettier from 2.8.7 to 2.8.8 in /node by @dependabot in #319
  • chore(deps-dev): Bump @types/node from 18.15.11 to 18.16.0 in /node by @dependabot in #318
  • chore(deps-dev): Bump @types/jest from 29.5.0 to 29.5.1 in /node by @dependabot in #317
  • chore(deps-dev): Bump typedoc from 0.24.4 to 0.24.6 in /node by @dependabot in #324
  • chore: update to wasmtime 8.0.0 by @zshipko in #323
  • chore: publish browser host by @bhelx in #332
  • chore: publish dotnet host 0.5.0 by @bhelx in #333
  • chore(deps): Bump rustler from 0.27.0 to 0.28.0 in /elixir by @dependabot in #331
  • chore(deps): Update rustler requirement from 0.27.0 to 0.28.0 by @dependabot in #330
  • chore(deps-dev): Bump @types/node from 18.16.0 to 18.16.3 in /node by @dependabot in #329
  • chore: fix warnings coming from dotnet compiler by @bhelx in #336
  • chore(deps-dev): Bump typedoc from 0.24.6 to 0.24.7 in /node by @dependabot in #338
  • chore(deps-dev): Bump @types/node from 18.16.3 to 20.1.0 in /node by @dependabot in #337
  • fix(rust): use CString for strings passed to to set_log_file by @zshipko in #341
  • chore(deps-dev): Bump @types/node from 20.1.0 to 20.1.4 in /node by @dependabot in #342
  • fix(php): $err is not implicitly cast to string by @bhelx in #344
  • fix(elixir): Fix nif package build and release as 0.3.2 by @bhelx in #345
  • feat!: add ability to create plugins without an existing Context by @zshipko in #335
  • fix: use UserData::make_copy instead of UserData::new_pointer to preserve is_any field by @zshipko in #346
  • feat: add EXTISM_PROFILE environment variable to configure profiling by @zshipko in #326
  • feat(php): Implicit context by @bhelx in #347
  • fix(ruby): fix implicit context by @bhelx in #348
  • release: Bump runtime to 0.4.0 by @bhelx in #340

Full Changelog: v0.3.0...v0.4.0

RELEASE v0.4.0

Head to https://extism.org for docs and an overview, and chat with us on Discord!

v0.3.0

15 Mar 14:46
8d76cf0
Compare
Choose a tag to compare

What's Changed

  • chore: bump version for haskell extism-manifest package by @zshipko in #223
  • fix(elixir-sdk): Release 0.2.0 is broken due to this local path dep by @bhelx in #224
  • docs: Update README to reflect quality but instability by @bhelx in #226
  • docs(java-sdk): fix source code link by @bhelx in #228
  • chore(deps-dev): Bump @types/jest from 29.2.5 to 29.2.6 in /node by @dependabot in #230
  • chore(deps): Update rustler requirement from 0.26.0 to 0.27.0 by @dependabot in #232
  • chore(deps): Bump rustler from 0.26.0 to 0.27.0 in /elixir by @dependabot in #235
  • chore: Make memory traces clearer by @bhelx in #236
  • cleanup: fix opam files according to changes published to opam by @zshipko in #237
  • test(browser): Comment out test so we stop failure by @bhelx in #238
  • fix(go): allow for host functions with no arguments or return values by @zshipko in #241
  • feat: add helper functions for working with input/output of host functions as bytes by @zshipko in #240
  • Make the Python example more idiomatic by @brettcannon in #242
  • chore: update toml to 0.7 by @zshipko in #245
  • feat: add ability to set host function namespace by @zshipko in #246
  • chore(deps-dev): Bump typescript from 4.9.4 to 4.9.5 in /node by @dependabot in #252
  • chore(deps-dev): Bump @types/node from 18.11.18 to 18.11.19 in /node by @dependabot in #251
  • chore(deps-dev): Update black requirement from ^22.10.0 to ^23.1.0 in /python by @dependabot in #250
  • chore(deps-dev): Bump jest from 29.3.1 to 29.4.1 in /node by @dependabot in #243
  • feat(zig-sdk): Implement Host Functions by @usdogu in #249
  • cleanup: use serde(deny_unknown_fields) in manifest by @zshipko in #254
  • chore(deps-dev): Bump jest from 29.4.1 to 29.4.2 in /node by @dependabot in #256
  • chore(deps-dev): Bump typedoc from 0.23.24 to 0.23.25 in /node by @dependabot in #257
  • chore(deps-dev): Bump @types/node from 18.11.19 to 18.13.0 in /node by @dependabot in #258
  • chore(deps-dev): Bump prettier from 2.8.3 to 2.8.4 in /node by @dependabot in #259
  • fix(zig-sdk): Fix Example And Test by @usdogu in #260
  • chore(deps-dev): Bump @types/node from 18.13.0 to 18.14.0 in /node by @dependabot in #262
  • chore(deps-dev): Bump jest from 29.4.2 to 29.4.3 in /node by @dependabot in #261
  • fix(python): export CurrentPlugin by @zshipko in #263
  • chore: update wasmtime to 6.0, bump extism versions by @nilslice in #247
  • feat: Add Host Functions support for Java SDK by @Zwiterrion in #248
  • fix(zig): use new for loop syntax by @zshipko in #269
  • chore(deps-dev): Bump @types/node from 18.14.0 to 18.14.2 in /node by @dependabot in #266
  • chore(deps-dev): Bump typedoc from 0.23.25 to 0.23.26 in /node by @dependabot in #265
  • chore(deps-dev): Bump ex_doc from 0.29.1 to 0.29.2 in /elixir by @dependabot in #273
  • chore(deps-dev): Bump @types/node from 18.14.2 to 18.14.6 in /node by @dependabot in #272
  • chore(deps-dev): Update minitest requirement from ~> 5.17.0 to ~> 5.18.0 in /ruby by @dependabot in #271
  • feat: add ability to set host function namespace for Java SDK by @Zwiterrion in #275
  • feat: Add plugin cancellation by @zshipko in #270
  • chore: update to wasmtime 6.0.1 by @zshipko in #276
  • feat: Support allowed_paths in the Java SDK by @mathieuancelin in #277
  • chore(deps-dev): Bump jest from 29.4.3 to 29.5.0 in /node by @dependabot in #280
  • chore(deps-dev): Bump @types/node from 18.14.6 to 18.15.0 in /node by @dependabot in #279
  • chore: update haskell base upper bound by @zshipko in #282
  • release: 0.3.0 by @bhelx in #281

New Contributors

Full Changelog: v0.2.0...v0.3.0

RELEASE v0.3.0

Head to https://extism.org for docs and an overview, and chat with us on Discord!

v0.2.0

19 Jan 16:58
c94c221
Compare
Choose a tag to compare

What's Changed

  • fix(elixir-sdk): remove compiled nif from package, update readme by @bhelx in #111
  • fix: removes the stdout print of extism.h in php sdk by @nilslice in #112
  • fix: update crate name to extism_runtime in logging registration function by @zshipko in #123
  • chore(deps-dev): Bump @types/ffi-napi from 4.0.6 to 4.0.7 in /node by @dependabot in #131
  • chore(deps-dev): Bump @types/node from 18.11.9 to 18.11.10 in /node by @dependabot in #130
  • fix: add null byte to end of version string by @zshipko in #139
  • feat: Improve usability of manifest types by @zshipko in #124
  • fix: Reinstantiate after call to _start by @zshipko in #135
  • feat: add allowed_paths to specify preopened directories in WASI by @zshipko in #137
  • fix: use Dir::open_ambient_dir instead of Dir::from_std_file by @zshipko in #140
  • fix: disallow all hosts if allowed_hosts is empty by @zshipko in #143
  • feat: Add support for allowed_paths manifest key in SDKs by @zshipko in #144
  • fix(ci): don’t install Python dev dependencies on CI by @zshipko in #149
  • refactor(haskell): cleanup haskell SDK to prepare for release by @zshipko in #138
  • feat: Implement .NET Host SDK by @mhmd-azeez in #119
  • feat: Add ability to register host functions with the runtime from the Rust SDK by @zshipko in #148
  • fix: remove old/duplicate Haskell runtime initialization code by @zshipko in #154
  • chore(deps-dev): Bump prettier from 2.8.0 to 2.8.1 in /node by @dependabot in #159
  • chore(deps-dev): Bump @types/node from 18.11.10 to 18.11.13 in /node by @dependabot in #158
  • chore(deps-dev): Bump typescript from 4.9.3 to 4.9.4 in /node by @dependabot in #157
  • chore(deps-dev): Bump typedoc from 0.23.21 to 0.23.22 in /node by @dependabot in #156
  • ci(dotnet-sdk): Package dotnet lib with native dll by @bhelx in #152
  • chore(dotnet-sdk): Release 0.2.0 by @bhelx in #161
  • chore(deps-dev): Bump @types/jest from 29.2.3 to 29.2.4 in /node by @dependabot in #155
  • docs: Add link to Haskell PDK instructions by @bhelx in #162
  • feat: Add option to set timeout for plugin by @zshipko in #163
  • feat: add timeout_ms field to SDKs by @zshipko in #165
  • chore(dotnet-sdk): Update Sample file, use the one from the docs by @bhelx in #164
  • fix: use timeouts for language-specific runtime initialization/finalization calls by @zshipko in #169
  • fix(haskell): update encoding of Extism.Manifest.HTTPRequest by @zshipko in #170
  • chore: update OCaml version to latest release by @zshipko in #171
  • feat(java-sdk): Create Java Host SDK by @bhelx in #122
  • docs(java-sdk): Update readme by @bhelx in #175
  • chore: move each language to separate workflow by @zshipko in #176
  • ci: use glob for paths by @zshipko in #178
  • refactor(java-sdk): Revise API usage by @thomasdarimont in #177
  • refactor(ocaml): Cleanup code, split out extism-manifest package, prepare to release with next runtime release by @zshipko in #182
  • chore: update to wasmtime 4.0.0 by @zshipko in #181
  • chore(deps-dev): Bump @types/node from 18.11.13 to 18.11.17 in /node by @dependabot in #174
  • fix(elixir): use local Rust extism package from extism_nif for local development by @zshipko in #180
  • feat(zig-sdk): Create Zig Host Sdk by @usdogu in #186
  • chore(deps): Bump json5 from 2.2.1 to 2.2.3 in /browser by @dependabot in #193
  • chore(deps): Bump json5 from 2.2.1 to 2.2.3 in /node by @dependabot in #194
  • chore(deps-dev): Bump @types/jest from 29.2.4 to 29.2.5 in /node by @dependabot in #192
  • chore(deps-dev): Bump @types/node from 18.11.17 to 18.11.18 in /node by @dependabot in #191
  • chore(deps-dev): Update minitest requirement from ~> 5.16.3 to ~> 5.17.0 in /ruby by @dependabot in #190
  • feat(zig): import extism.h directly instead of hand-written bindings by @zshipko in #197
  • feat: WASI support for browser runtime by @bhelx in #196
  • Fix: Fixes Runtime problem with ESM module by @bhelx in #199
  • chore(deps-dev): Bump typedoc from 0.23.22 to 0.23.24 in /node by @dependabot in #206
  • chore(deps-dev): Bump prettier from 2.8.1 to 2.8.2 in /node by @dependabot in #205
  • chore(deps): Update base64 requirement from 0.20.0-alpha to 0.21.0 by @dependabot in #204
  • chore: use new base64 API, cleanup clippy warnings by @zshipko in #211
  • feat: Add C API for host functions + support for C++, Python, Go, Node, OCaml by @zshipko in #195
  • cleanup: minor OCaml/Haskell API updates by @zshipko in #213
  • cleanup: use debug logging instead of info in runtime, fix C example by @zshipko in #214
  • fix: remove quotes from makefile by @zshipko in #218
  • chore(deps-dev): Bump prettier from 2.8.2 to 2.8.3 in /node by @dependabot in #217
  • chore(deps-dev): Bump typedoc from 0.23.22 to 0.23.24 in /node by @dependabot in #216
  • chore(deps-dev): Bump ts-jest from 29.0.3 to 29.0.5 in /node by @dependabot in #215
  • fix: use cgo.Handle to protect Go pointers being passed to C callbacks by @zshipko in #220
  • Support jdk11 by @Zwiterrion in #208
  • ci(java-sdk): Test on multiple JREs by @bhelx in #221
  • test: add more host function tests, cleanup tests to use wasm/code.wasm when possible by @zshipko in #219
  • release: v0.2.0 by @bhelx in #209

New Contributors

Full Changelog: v0.1.0...v0.2.0

RELEASE v0.2.0

Head to https://extism.org for docs and an overview, and chat with us on Discord!

Release v0.1.0

30 Nov 20:59
37b8e5b
Compare
Choose a tag to compare

What's Changed

  • chore: Fix elixir release workflow by @bhelx in #77
  • fix(rust-sdk): Fix dep versions by @bhelx in #102
  • chore(python-sdk): Put placeholder readme in python dir by @bhelx in #104
  • Fix elixir bindings by @zshipko in #109
  • docs(elixir-sdk): Reduce elixir min version by @bhelx in #108
  • docs(node-sdk): Fix example to use CJS imports by @bhelx in #107
  • fix(ruby-sdk): Add FFI gem as dependency by @bhelx in #106
  • chore: Add Makefile for browser runtime by @bhelx in #103
  • release: v0.1.0 by @bhelx in #110

Full Changelog: v0.0.1...v0.1.0

RELEASE 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).

Things may be incomplete or undocumented or difficult to install, but not for long!

This is a preview to share progress on a usable version while we wrap up some docs, automation, package distribution, installation process, etc.

Preview Installation & Usage

Try the extism CLI:

  • Install from https://github.com/extism/cli, read usage in the README.md
  • Some Host SDKs are available via respective package managers / distribution systems. Try those!

Or:

  • Clone the repository.
  • Copy the language SDK you want to use (./node, ./ruby, ./python etc are language SDKs in the root of the repo).
  • Download a pre-built release for your system (attached below), or build the project from source (see the Makefile in the root, make build).
  • Install 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...

Head to https://extism.org for docs and an overview, and chat with us on Discord!