Skip to content

Latest commit

 

History

History
129 lines (98 loc) · 5.07 KB

CHANGELOG.md

File metadata and controls

129 lines (98 loc) · 5.07 KB

Changelog

All notable changes to this project will be documented in this file.

The format of this file is based on Keep a Changelog, and this project adheres to Semantic Versioning.

unreleased

  • Add ability to add publish to the generated Cargo.toml file (#208)
  • Fix generating publish value as a toml bool (#209)

[3.0.0] - 2023-04-28

Added

  • Added support for serde_json::Map (#163).
  • Added support for specifying custom Cargo registries with CargoDependency.
  • Added helpers for building CargoDependency with a git repository.
  • Added description, readme and license fields to RustPluginConfig.

Changed

  • Added MIT as an option to the project licensing.
  • Replaced the rust_plugin_module and rust_wasmer_runtime_module annotations with a single rust_module annotation.
  • Struct fields annotated with skip_serializing_if are treated as optional by the TypeScript binding generator.
  • Struct fields generated by fp-bindgen will not automatically add any Serde annotations that were not there in the original protocol definition.
  • CargoDependency is now marked as non-exhaustive to prevent future breaking changes.
  • RustPluginConfig now needs to be initialized using RustPluginConfig::builder(). Struct initialization syntax will not work anymore.
  • Every field in the RustPluginConfig builder can be set to RustPluginConfigValue::Workspace to indicate the value in the generated Cargo.toml should come from the workspace instead.
  • Changed primitive tests in example to call imported functions from the plugin.
  • The TypeScript runtime now uses streaming instantiation for the WebAssembly module by default.
  • BindingsType::TsRuntimeWithExtendedConfig has been renamed back to BindingsType::TsRuntime (and the old BindingsType::TsRuntime, which was deprecated in 2.0.0, is now removed).
  • Renamed the RustWasmerRuntime and RustWasmerWasiRuntime to RustWasmer2Runtime and RustWasmer2WasiRuntime, respectively. This is in anticipation for supporting Wasmer 3 in an upcoming release. For more information, please see: #185

Fixed

  • Made sure cargo check doesn't complain about unused imports in the generated plugin bindings.
  • Added workaround for imported functions with float arguments for wasmer2 in example, see #180.
  • Fixed async functions returning primitive values, including void async functions, see #178.

[2.4.0] - 2022-10-04

Added

[2.3.0] - 2022-09-13

Added

  • Added support for configuring default_features in Cargo dependencies.

[2.2.0] - 2022-08-31

Added

  • Added the serde-json-compat feature for compatibility with the serde_json::Value type.

Changed

  • Use the Wasmer Singlepass compiler on all architectures (Cranelift was used previously because Singlepass did not yet support arm64 chips)

2.1.0

  • Add support for arrays of primitives (#94).
  • Added the bytes-compat feature for compatibility with the bytes crate.
  • Fixed an issue where embedded Uint8Arrays that were returned to the TypeScript runtime from Bytes or ByteBuf types in the Rust plugin could end up being corrupted.

2.0.1

  • Fix custom types in generic positions in export function signatures (#130).

2.0.0

Breaking changes

  • The TypeIdent struct has been altered. If you have custom Serializable implementations you likely need to update those.

Other changes

  • Added Deno support for the TypeScript runtime.
  • Reorganized examples and improved documentation.
  • Added end-to-end tests.
  • Fix #105: Correctly handle passing negative integers as primitives (outside MessagePack) between Rust and TypeScript.
  • Fix type of MessagePack-encoded 64-bit integers in TypeScript bindings.
  • Fix handling synchronous responses from async plugin functions in TypeScript runtime.
  • Fix #108: Serialization of types from the time crate now works between Rust and TypeScript.
  • Implemented warnings when types that rely on custom Serde (de)serializers are used in contexts where their annotations cannot be used.
  • Various smaller bugfixes.
  • Deprecation: BindingsType::TsRuntime is now deprecated in favor of BindingsType::TsRuntimeWithExtendedConfig.
  • Fix #88: Bounds are propagated correctly to generated types (with the exception of the compile-time only Serializable bound).
  • Fix #88: Deal with the Unit (()) type.
  • Use any type in TypeScript to represent rmpv::Value (#127).
  • Fix issue when TypeScript types conflicted with built-in JavaScript globals (#128).
  • Fix custom types in generic positions (#126).