This repository was archived by the owner on Jul 10, 2025. It is now read-only.
fp-bindgen v3.0.0 packs a lot of goodies. While we had to postpone the migration to Wasmer 3 itself, we did make all the preparations so that introducing Wasmer 3 support should be feasible without another breaking change. The main things to look out for are that some symbols, including the "host" feature, have been renamed to refer to wasmer2 explicitly.
Other nice feaures are support for JSON maps, better ways to specify Cargo fields and dependencies, and streaming instantiation support for the TypeScript runtime (which is also enabled by default).
Added
- Added support for
serde_json::Map(#163). - Added support for specifying custom Cargo registries with
CargoDependency. - Added helpers for building
CargoDependencywith a git repository. - Added
description,readmeandlicensefields toRustPluginConfig.
Changed
- BREAKING: The TypeScript runtime now uses streaming instantiation for the WebAssembly module by default.
- BREAKING:
BindingsType::TsRuntimeWithExtendedConfighas been renamed back toBindingsType::TsRuntime(and the oldBindingsType::TsRuntime, which was deprecated in 2.0.0, is now removed). - BREAKING: Renamed the
RustWasmerRuntimeandRustWasmerWasiRuntimetoRustWasmer2RuntimeandRustWasmer2WasiRuntime, respectively. This is in anticipation for supporting Wasmer 3 in an upcoming release. For more information, please see: #185 - BREAKING: Replaced the
rust_plugin_moduleandrust_wasmer_runtime_moduleannotations with a singlerust_moduleannotation. - BREAKING:
RustPluginConfignow needs to be initialized usingRustPluginConfig::builder(). Struct initialization syntax will not work anymore. - BREAKING:
CargoDependencyis now marked as non-exhaustive to prevent future breaking changes. - BREAKING: Renamed the
hostfeature towasmer2_host. - Added MIT as an option to the project licensing.
- Struct fields annotated with
skip_serializing_ifare treated as optional by the TypeScript binding generator. - Struct fields generated by
fp-bindgenwill not automatically add any Serde annotations that were not there in the original protocol definition. - Every field in the
RustPluginConfigbuilder can be set toRustPluginConfigValue::Workspaceto indicate the value in the generatedCargo.tomlshould come from the workspace instead. - Changed primitive tests in example to call imported functions from the plugin.