Releases: extism/extism
Releases · extism/extism
v1.0.3
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
What's Changed
Full Changelog: v1.0.1...v1.0.2
v1.0.1
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
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!
- 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 inextism:host/user
by default.
Runtime/Rust SDK
extism-runtime
andextism
crates have been combined. Onlyextism
should be used now.Plugin::new_with_manifest
has been removed - manifests can be passed toPlugin::new
directlyPluginBuilder::new_with_module
has been removed, raw wasm can be passed toPluginBuilder::new
directlyFunction::new
now requires a user-data argument when before it was anOption
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 implementsextism_convert::ToBytes
and returns any type that implementsextism_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 andExtismPlugin
is now a direct pointer to theextism::Plugin
typeextism_plugin_new
takes an additional out-argument to get the error message. Useextism_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
andextism
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 fromPlugin::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 ...
v1.0.0-rc7
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
- @neuronicnobody made their first contribution in #617
Full Changelog: v1.0.0-rc6...v1.0.0-rc7
v1.0.0-rc6
What's Changed
- feat: enable wasmtime caching by @zshipko in #605
- cleanup: simplify main module resolution by @zshipko in #612
- cleanup: avoid matching meta.name twice by @zshipko in #613
- docs: Some readme changes on api status by @bhelx in #614
- doc: add example of linking modules in a plugin by @chrisdickinson in #616
- build: combine rust release workflows by @chrisdickinson in #611
Full Changelog: v1.0.0-rc5...v1.0.0-rc6
v0.5.5
v1.0.0-rc5
What's Changed
- build: drive cargo releases from git tag by @chrisdickinson in #610
Full Changelog: v1.0.0-rc4...v1.0.0-rc5
v1.0.0-rc4
What's Changed
- doc: add DEVELOPING.md with release workflow by @chrisdickinson in #602
- cleanup: remove old SDKs by @zshipko in #583
- build: drive crate versions from workspace; drive workspace version from ci by @chrisdickinson in #604
Full Changelog: v1.0.0-rc3...v1.0.0-rc4
v1.0.0-rc3
What's Changed
Full Changelog: v1.0.0-rc2...v1.0.0-rc3