Skip to content

Releases: extism/extism

v1.3.0

22 May 17:16
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.2.0...v1.3.0

Development Build

22 May 17:41
5da0eb3
Compare
Choose a tag to compare
Development Build Pre-release
Pre-release

Code Refactoring

v1.2.0

12 Mar 16:08
Compare
Choose a tag to compare

What's Changed

  • doc: remove old default for timeout_ms by @zshipko in #688
  • chore(deps): Update base64 requirement from ~0.21 to ~0.22 by @dependabot in #690
  • feat: add ability to configure size of the Extism var store by @zshipko in #692
  • chore: update badge to reflect rust installs by @nilslice in #693
  • fix(pdk): return error when no response is available by @zshipko in #694

Full Changelog: v1.1.0...v1.2.0

v1.1.0

22 Feb 21:03
Compare
Choose a tag to compare

What's Changed

  • chore: support for wasmtime 17.0.0 by @zshipko in #665
  • feat(convert): add derive macros for To and FromBytes by @ModProg in #667
  • feat: allow max HTTP response size to be configured in the manifest by @zshipko in #674
  • ci: add release workflow for convert-macros crate by @zshipko in #683
  • fix: linker issue that depends on the ordering of the linked functions by @zshipko in #685

New Contributors

Full Changelog: v1.0.3...v1.1.0

v1.0.3

22 Jan 19:10
Compare
Choose a tag to compare

What's Changed

  • fix(kernel): fix potential overflow in bounds check when lots of memory has been allocated by @zshipko in #663
  • fix: make function Plugin::function_extists check the type of the functions. by @OLUWAMUYIWA in #664

Thank you @OLUWAMUYIWA for your first contribution! 🎆

Full Changelog: v1.0.2...v1.0.3

v1.0.2

19 Jan 21:22
Compare
Choose a tag to compare

What's Changed

  • feat: Use quickcheck to test allocations, fix one bug that was uncovered. by @zshipko in #662

Full Changelog: v1.0.1...v1.0.2

v1.0.1

18 Jan 18:43
Compare
Choose a tag to compare

What's Changed

  • chore: kernel add Handle and Offset types to differentiate from Pointer by @G4Vi in #652
  • feat: update README by @nilslice in #655
  • docs: fix rc version in docs by @bhelx in #656
  • feat: manifest wasm data without base64 by @G4Vi in #657
  • feat(convert): add conversions for Option<T> by @zshipko in #658
  • fix(kernel): Fix calculation of handle offset when splitting re-used memory, add kernel test by @Marton6 in #659

New Contributors

Full Changelog: v1.0.0...v1.0.1

v1.0.0

08 Jan 15:50
211d553
Compare
Choose a tag to compare

Today we're no longer deploying 1.0.0-rcX versions or versions from the stable branch. We're officially cutting 1.0.0 across all repos. This has been a massive undertaking and we have a few highlights we'd like to call out from the community:

Community Highlights

  • Philippe Charrière @k33g has been instrumental in getting eyeballs on Extism. There is really too much to highlight. But here are a few things:
    • Simplism is a really awesome FAAS wrapper around Extism. It's really incredible to see Extism turned into a full on FAAS!
    • Phillipe also did some presentations where he talked about Extism
  • Doğu Us @usdogu is pretty much single-handedly handling our Zig support!
    • He created the Zig SDK
    • He created the Zig PDK
    • He's also been super responsive to issues and updates
  • Chance Snow @chances created a new D SDK!
  • Thomas Darimont @thomasdarimont is the primary driver of the Java SDK and has been crucial to
    helping us break into the Java ecosystem
  • Etienne Anne @Zwiterrion from Otoroshi was also crucial on our Java SDK and has done some interesting work to get OPA to work in Extism.
  • Egon Elbre @egonelbre has made some great improvements to the Go PDK including removing the C dependency
  • Quinn Millican @syke99 has also made improvements to the Go PDK as well as providing lots feedback and ideas on our Go ecosystem
  • Luke Paireepinart @lukevp has made a ton of contributions to our Dotnet and our JS ecosystem.

Migration Notes

Here are some notes about breaking changes if you're trying to migrate from 0.5.x:

Overview

  • There is a new Extism CLI rewritten in Go: https://github.com/extism/cli
  • The Rust SDK and C SDK are still in extism/extism
  • The other SDKs have been moved from extism/extism to their own repos (for example, extism/python-sdk)
  • The Go SDK uses Wazero and the JS SDK uses the native WASM engine for the JS runtime being used (node, deno, bun, browser)
  • The Context type has been removed and plugin creation no longer takes a context argument in any SDK.
  • The module namespace for Extism host function has been changed to extism:host/env and user-defined host functions are now in extism:host/user by default.

Runtime/Rust SDK

  • extism-runtime and extism crates have been combined. Only extism should be used now.
  • Plugin::new_with_manifest has been removed - manifests can be passed to Plugin::new directly
  • PluginBuilder::new_with_module has been removed, raw wasm can be passed to PluginBuilder::new directly
  • Function::new now requires a user-data argument when before it was an Option parameter, UserData::default() can be used instead.
  • The nn feature has been removed, please reach out if this is an issue for you!
  • extism-convert is used to convert Rust types in and out of Extism memory
  • Plugin::call and other places where data is copied into Extism memory, accept any type that implements extism_convert::ToBytes and returns any type that implements extism_convert::FromBytes
  • Maximum memory is no longer statically checked, an error will be raised when the allocated memory exceeds the configured limit

C SDK

  • ExtismContext has been removed and ExtismPlugin is now a direct pointer to the extism::Plugin type
  • extism_plugin_new takes an additional out-argument to get the error message. Use extism_plugin_new_error_free to free error messages.

Changelog since 0.5.x

  • release: Bump the rest of the SDKs by @bhelx in #430
  • release: Bump elixir nif to rust 0.5 by @bhelx in #431
  • chore(deps): Update cbindgen requirement from 0.24 to 0.25 by @dependabot in #434
  • chore(deps-dev): Bump ex_doc from 0.30.5 to 0.30.6 in /elixir by @dependabot in #440
  • chore(deps-dev): Bump @types/node from 20.5.1 to 20.5.7 in /node by @dependabot in #437
  • chore(deps-dev): Bump typedoc from 0.24.8 to 0.25.0 in /node by @dependabot in #439
  • chore(deps-dev): Bump typescript from 5.1.6 to 5.2.2 in /node by @dependabot in #438
  • chore(deps-dev): Bump jest and @types/jest in /node by @dependabot in #436
  • refactor!: Remove context, unify extism-runtime and extism crates by @zshipko in #421
  • chore(deps-dev): Bump prettier from 3.0.2 to 3.0.3 in /node by @dependabot in #445
  • chore(deps-dev): Bump @types/node from 20.5.7 to 20.5.9 in /node by @dependabot in #444
  • fix: toml manifests load the extism runtime by @chrisdickinson in #447
  • feat: Add EXTISM_ENABLE_WASI_OUTPUT to inherit stdout/stderr by @zshipko in #446
  • chore(deps-dev): Update minitest requirement from ~> 5.19.0 to ~> 5.20.0 in /ruby by @dependabot in #450
  • chore(deps-dev): Bump @types/node from 20.5.9 to 20.6.0 in /node by @dependabot in #449
  • chore(deps-dev): Bump typedoc from 0.25.0 to 0.25.1 in /node by @dependabot in #448
  • feat(ruby): Host functions and clean up FFI code by @bhelx in #442
  • feat(ocaml): add missing flags to extism-call executable by @zshipko in #451
  • feat(browser): Allow Initialization of Plugin from WebAssembly.Module by @wikiwong in #453
  • chore(browser): bump package version by @wikiwong in #454
  • feat: Add extism-convert crate and use it for input/output to plugin calls by @zshipko in #443
  • feat(build): Add "latest" snapshot builds by @chrisdickinson in #457
  • fix(kernel): avoid allocating 0-length blocks by @zshipko in #465
  • fix(main): Fixes rounding issue in kernel num_pages by @zshipko in #468
  • ci: automate PRs to build canonical version of extism-runtime.wasm by @zshipko in #473
  • chore(deps-dev): Bump jest and @types/jest in /node by @dependabot in #463
  • chore(deps-dev): Bump @types/ffi-napi from 4.0.7 to 4.0.8 in /node by @dependabot in #462
  • chore(deps-dev): Bump @types/node from 20.6.0 to 20.6.2 in /node by @dependabot in #461
  • chore(deps): Update cbindgen requirement from 0.25 to 0.26 by @dependabot in #460
  • chore(deps): Update toml requirement from 0.7 to 0.8 by @dependabot in #459
  • fix(main): improve the way the kernel calculates how many pages to allocate by @zshipko in #472
  • docs: Add note about stable branch by @bhelx in #479
  • feat(build): add extism-maturin wheel builds by @chrisdickinson in #480
  • fix(build): remove windows gnu wheel builds by @chrisdickinson in #481
  • cleanup(runtime): remove restrictions around memory.max_pages option, fix crash by @zshipko in #482
  • chore: bump wasmtime lower bound to 13.0.0, remove wasi-nn support by @zshipko in #483
  • chore(deps): Update ffi requirement from ~> 1.15.5 to ~> 1.16.1 in /ruby by @dependabot in #485
  • chore(deps-dev): Bump @types/node from 20.6.2 to 20.6.5 in /node by @dependabot in #484
  • chore: prepare extism-convert to be released by @zshipko in #494
  • docs: Add readme, bump convert crate by @bhelx in #495
  • feat(build): GHA release-python now releases extism_sys packages by @chrisdickinson in #498
  • feat: kernel hardening by @zshipko in #499
  • fix(rust): return extism_error message from Plugin::call if it is set by @zshipko in #508
  • feat: add benchmarking, optimize bounds checking in the kernel by @zshipko in #505
  • fix(kernel): update outdated implementation of MemoryBlock::next_ptr by @zshipko in #509
  • fix: undo change to extism_memory_bytes left over from debugging by @zshipko in #519
  • chore(deps-dev): Bump @babel/traverse from 7.20.13 to 7.23.2 in /browser by @dependabot in #518
  • chore(deps): Bump @types/ref-array-di from 1.2.5 to 1.2.6 in /node by @dependabot in #491
  • chore(deps-dev): Bump typedoc from 0.25.1 to 0.25.2 in /node by @dependabot in #502
  • chore(deps-dev): Bump ex_doc from 0.30.6 to 0.30.7 in /elixir by @dependabot in #513
  • chore(deps-dev): Bump @types/node from 20.6.5 to 20.8.6 in /node by @dependabot in ...
Read more

v1.0.0-rc7

16 Dec 00:04
2087398
Compare
Choose a tag to compare
v1.0.0-rc7 Pre-release
Pre-release

What's Changed

  • cleanup: implement Debug and PartialEq for manifest types by @zshipko in #618
  • fix manifest link by @neuronicnobody in #617
  • fix: improve handling of 0 length blocks by @zshipko in #622
  • refactor!: better scoping of arguments in host_fn macro, allow visibility in macros to be specified by @zshipko in #621
  • ci: bring back nuget packages for Extism runtime by @mhmd-azeez in #624
  • build: add c++ compat to extism.h by @G4Vi in #625
  • feat: Add extism_convert::Raw to allow direct encoding using bytemuck by @zshipko in #626
  • fix(kernel): improve performance after large allocations, add extism_plugin_reset to give users more control when dealing with large allocations by @zshipko in #627
  • ci: release extism.dll.lib and extism.dll.a by @mhmd-azeez in #633
  • fix(kernel): length function should return 0 for invalid offsets by @zshipko in #635
  • fix: give extism_log_drain's param a named type by @chrisdickinson in #638

New Contributors

Full Changelog: v1.0.0-rc6...v1.0.0-rc7

v1.0.0-rc6

01 Dec 21:02
c1b14e8
Compare
Choose a tag to compare
v1.0.0-rc6 Pre-release
Pre-release

What's Changed

Full Changelog: v1.0.0-rc5...v1.0.0-rc6