chore(deps): update cargo (patch) #5

Open
renovate wants to merge 1 commit from renovate/patch-cargo into main
Member

This PR contains the following updates:

Package Type Update Change
anyhow dependencies patch 1.0.801.0.104
assert_cmd dependencies patch 2.0.142.0.17
assert_cmd dev-dependencies patch 2.0.142.0.17
axoupdater dependencies patch 0.7.00.7.3
cc build-dependencies patch 1.0.831.0.106
cc build-dependencies patch 1.0.971.0.106
chrono dependencies patch 0.4.350.4.45
clap dependencies patch 4.5.24.5.61
console dependencies patch 0.15.80.15.11
enum_dispatch dependencies patch 0.3.120.3.13
flate2 dependencies patch 1.0.281.0.35
futures dependencies patch 0.3.300.3.33
getrandom dependencies patch 0.2.120.2.17
ignore (source) dependencies patch 0.4.220.4.33
indicatif dependencies patch 0.17.80.17.11
indicatif-log-bridge dependencies patch 0.2.20.2.3
log dependencies patch 0.4.210.4.33
napi dependencies patch 2.16.42.16.17
napi-derive dependencies patch 2.16.32.16.13
ntest dev-dependencies patch 0.9.10.9.5
openssl dependencies patch 0.10.640.10.81
predicates dev-dependencies patch 3.1.03.1.4
rand (source) dependencies patch 0.8.50.8.7
reqwest dependencies patch 0.11.240.11.27
reqwest dev-dependencies patch 0.11.240.11.27
serde (source) dependencies patch 1.0.2171.0.229
serde_json dependencies patch 1.0.1371.0.151
serde_json dev-dependencies patch 1.0.1371.0.151
serde_yaml dependencies patch 0.9.320.9.34
sha2 dependencies patch 0.10.80.10.9
thiserror dependencies patch 1.0.631.0.69
tracing dependencies patch 0.1.410.1.44
tracing-subscriber dependencies patch 0.3.180.3.23
tree-sitter-language (source) dependencies patch 0.1.20.1.7
wasm-bindgen (source) dependencies patch 0.2.920.2.127
wasm-bindgen-futures (source) dependencies patch 0.4.420.4.77
wasm-bindgen-test dev-dependencies patch 0.3.420.3.77
web-sys (source) dependencies patch 0.3.690.3.104

Release Notes

assert-rs/assert_cmd (assert_cmd)

v2.0.17

Compare Source

Features
  • Add cargo::cargo_bin! which will work with Cargo's build-dir

v2.0.16

Compare Source

Features
  • Add getters to Command to mirror those added to the standard library

v2.0.15

Compare Source

Compatibility
  • MSRV is now 1.74.0
rust-lang/cc-rs (cc)

v1.0.106

Compare Source

Other

v1.0.105

Compare Source

Other
  • Regenerate windows sys bindings (#​1132)
  • Fix generate-windows-sys-bindings (#​1133)
  • Fix gen-windows-sys-binding (#​1130)
  • Fix gen-windows-sys-binding (#​1127)
  • Update windows-bindgen requirement from 0.57 to 0.58 (#​1123)

v1.0.104

Compare Source

Other
  • Fixed link break about compile-time-requirements (#​1118)

v1.0.103

Compare Source

Other
  • Fix compilation for wasm: env WASI_SYSROOT should be optional (#​1114)

v1.0.102

Compare Source

Other
  • Fix invalid wasi targets compatibility (#​1105)
  • Speedup regenerate-target-info and regenerate-windows-sys (#​1110)

v1.0.101

Compare Source

Other
  • Use Build::getenv instead of env::var* in anywhere that makes sense (#​1103)

v1.0.100

Compare Source

Other
  • Update publish.yml to use release-plz (#​1101)
  • Accept OsStr instead of str for flags (#​1100)
  • Use dep: syntax to avoid implicit features. (#​1099)
  • Minor clippy fixes. (#​1098)
  • Fix WASI compilation for C++ (#​1083)
  • Regenerate windows sys bindings (#​1096)
  • Rename regenerate-windows-sys to regenerate-windows-sys.yml (#​1095)
  • Create regenerate-windows-sys.yml (#​1094)
  • Update windows-bindgen requirement from 0.56 to 0.57 (#​1091)
  • Eagerly close tempfile to fix #​1082 (#​1087)
  • Output msvc.exe in the output directory (#​1090)
  • Fix clippy warnings on Windows (#​1088)
  • Don't try to free DLL on drop (#​1089)
  • Fix panic safety issue in StderrForwarder (#​1079)

v1.0.99

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.98...1.0.99

v1.0.98

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.97...1.0.98

v1.0.97

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.96...1.0.97

v1.0.96

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.95...1.0.96

v1.0.95

Compare Source

What's Changed

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.94...1.0.95

v1.0.94

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.93...1.0.94

v1.0.93

Compare Source

What's Changed

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.92...1.0.93

v1.0.92

Compare Source

What's Changed

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.91...1.0.92

v1.0.91

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.90...1.0.91

v1.0.90

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.89...1.0.90

v1.0.89

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.88...1.0.89

v1.0.88

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.87...1.0.88

v1.0.87

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.86...1.0.87

v1.0.86

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.85...1.0.86

v1.0.85

Compare Source

[!IMPORTANT]

This release has been yanked, due to panicking in freeBSD debug build. A release without these issues will be made in the near future.

Sorry, and thanks.

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.84...1.0.85

v1.0.84

Compare Source

[!IMPORTANT]

This release has been yanked, due to the Apple deployment target changes causing unintentional widespread breakage for building C++ code on the target (for projects without an explicit deployment target set). A release without these issues will be made in the near future.

Sorry, and thanks.

Changes

This isn't a complete list, but I've tried to cover everything that is either significant, or could cause problems for people using cc in configurations not covered by our tests.

  • The MSRV has been updated to 1.53.0 (#​894)
  • A completely overhauled implementation of the jobserver protocol (used under feature = parallel), which should be more efficient. (#​889).
  • Better handling of assemblers on windows targets, especially armasm[64].exe (#​867, #​868, #​869, #​857)
  • A few fixes for incorrect results from is_flag_supported (#​839, #​886)
  • Support for the *-apple-tvos and *-apple-tvos-sim targets (#​881, #​704)
  • Improved handling of the deployment target on Apple targets, including use of rustc --print deployment-target when available (#​848, #​872)
  • We no longer bundle bitcode when compiling for Apple targets, as they've deprecated it (#​812)
  • A new remove_flag function to remove flags which have been added with add_flag (#​885)
  • Changes to how clang and gcc are distinguished, and how -m32/-mx32/-m64 flags are passed (#​709)
  • Minor adjustments to how -isysroot is passed on Apple targets (#​703) and how MSVC version is detected on Windows (#​696).

As always, please file bugs if you hit issues. cc is used in many more ways than we can possibly test (especially when cross-compiling or using tier-3 platforms).

Thanks.

New Contributors

Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.83...1.0.84

chronotope/chrono (chrono)

v0.4.45: 0.4.45

Compare Source

What's Changed

v0.4.44: 0.4.44

Compare Source

What's Changed

v0.4.43: 0.4.43

Compare Source

What's Changed

v0.4.42: 0.4.42

Compare Source

What's Changed

v0.4.41

Compare Source

What's Changed

v0.4.40: 0.4.40

Compare Source

What's Changed

v0.4.39: 0.4.39

Compare Source

What's Changed

v0.4.38

Compare Source

This release bring a ca. 20% improvement to the performance of the formatting code, and a convenient days_since method for the Weekday type.

Chrono 0.4.38 also removes the long deprecated rustc-serialize feature. Support for rustc-serialize will be soft-destabilized in the next Rust edition. Removing the feature will not break existing users of the feature; Cargo will just not update dependents that rely on it to newer versions of chrono.

In chrono 0.4.36 we made an accidental breaking change by switching to derive(Copy) for DateTime instead of a manual implementation. It is reverted in this release.

Removals
Additions
Fixes
  • Return error when rounding with a zero duration (#​1474, thanks @​Dav1dde)
  • Manually implement Copy for DateTime if offset is Copy (#​1573)
Internal
  • Inline test_encodable_json and test_decodable_json functions (#​1550)
  • CI: Reduce combinations in cargo hack check (#​1553)
  • Refactor formatting code (#​1335)
  • Optimize number formatting (#​1558)
  • Only package files needed for building and testing (#​1554)

Thanks to all contributors on behalf of the chrono team, @​djc and @​pitdicker!

v0.4.37

Compare Source

Version 0.4.36 introduced an unexpected breaking change and was yanked. In it LocalResult was renamed to MappedLocalTime to avoid the impression that it is a Result type were some of the results are errors. For backwards compatibility a type alias with the old name was added.

As it turns out there is one case where a type alias behaves differently from the regular enum: you can't import enum variants from a type alias with use chrono::LocalResult::*. With 0.4.37 we make the new name MappedLocalTime the alias, but keep using it in function signatures and the documentation as much as possible.

See also the release notes of chrono 0.4.36 from yesterday for the yanked release.

v0.4.36

Compare Source

This release un-deprecates the methods on TimeDelta that were deprecated with the 0.4.35 release because of the churn they are causing for the ecosystem.

New is the DateTime::with_time() method. As an example of when it is useful:

use chrono::{Local, NaiveTime};
// Today at 12:00:00
let today_noon = Local::now().with_time(NaiveTime::from_hms_opt(12, 0, 0).unwrap());
Additions
Deprecations
  • Revert TimeDelta deprecations (#​1543)
  • Deprecate TimeStamp::timestamp_subsec_nanos, which was missed in the 0.4.35 release (#​1486)
Documentation
  • Correct version number of deprecation notices (#​1486)
  • Fix some typos (#​1505)
  • Slightly improve serde documentation (#​1519)
  • Main documentation: simplify links and reflow text (#​1535)
Internal
  • CI: Lint benchmarks (#​1489)
  • Remove unnessary Copy and Send impls (#​1492, thanks @​erickt)
  • Backport streamlined NaiveDate unit tests (#​1500, thanks @​Zomtir)
  • Rename LocalResult to TzResolution, add alias (#​1501)
  • Update windows-bindgen to 0.55 (#​1504)
  • Avoid duplicate imports, which generate warnings on nightly (#​1507)
  • Add extra debug assertions to NaiveDate::from_yof (#​1518)
  • Some small simplifications to DateTime::date_naive and NaiveDate::diff_months (#​1530)
  • Remove unwrap in Unix Local type (#​1533)
  • Use different method to ignore feature-dependent doctests (#​1534)

Thanks to all contributors on behalf of the chrono team, @​djc and @​pitdicker!

console-rs/console (console)

v0.15.11

Compare Source

What's Changed

v0.15.10

Compare Source

What's Changed

v0.15.9

Compare Source

What's Changed

rust-lang/flate2-rs (flate2)

v1.0.35: - security update to zlib-rs

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.34...1.0.35

v1.0.34

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.33...1.0.34

v1.0.33: - fix minimal manifest versions

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.32...1.0.33

v1.0.32: - turn panic into error

Compare Source

What's Changed

Fix
Other

New Contributors

Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.31...1.0.32

v1.0.31

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.30...1.0.31

v1.0.30: - docs.rs pages should build again

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.29...1.0.30

v1.0.29: - with new zlib-rs feature (~zlib-ng in Rust)

Compare Source

With the new zlib-rs feature, a new backend is enabled that brings in a SIMD-accelerated Rust implementation.

What's Changed

New Contributors

Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29

BurntSushi/ripgrep (ignore)

v0.4.33

Compare Source

v0.4.32

Compare Source

v0.4.31

Compare Source

v0.4.30

Compare Source

v0.4.29

Compare Source

v0.4.28

Compare Source

v0.4.27

Compare Source

v0.4.26

Compare Source

v0.4.25

Compare Source

v0.4.24

Compare Source

v0.4.23

Compare Source

assert-rs/predicates-rs (predicates)

v3.1.4

Compare Source

  • Make BoxPredicate::find_case use the inner find_case implementation

v3.1.3

Compare Source

Features
  • The boxed function is now available for predicates with an Item type that
    is not Sized.

v3.1.2

Compare Source

rust-random/rand (rand)

v0.8.7

Compare Source

What's Changed

Full Changelog: https://github.com/rust-random/rand/compare/0.8.6...0.8.7

v0.8.6

Compare Source

What's Changed

This release back-ports a fix from v0.10. See also #​1763.

Changes
  • Drop the experimental simd_support feature.
New Contributors

Full Changelog: https://github.com/rust-random/rand/compare/0.8.5...0.8.6

serde-rs/serde (serde)

v1.0.229

Compare Source

  • Update to syn 3

v1.0.228

Compare Source

  • Allow building documentation with RUSTDOCFLAGS='--cfg=docsrs' set for the whole dependency graph (#​2995)

v1.0.227

Compare Source

v1.0.226

Compare Source

  • Deduplicate variant matching logic inside generated Deserialize impl for adjacently tagged enums (#​2935, thanks @​Mingun)

v1.0.225

Compare Source

  • Avoid triggering a deprecation warning in derived Serialize and Deserialize impls for a data structure that contains its own deprecations (#​2879, thanks @​rcrisanti)

v1.0.224

Compare Source

  • Remove private types being suggested in rustc diagnostics (#​2979)

v1.0.223

Compare Source

  • Fix serde_core documentation links (#​2978)

v1.0.222

Compare Source

  • Make serialize_with attribute produce code that works if respanned to 2024 edition (#​2950, thanks @​aytey)

v1.0.221

Compare Source

  • Documentation improvements (#​2973)
  • Deprecate serde_if_integer128! macro (#​2975)

v1.0.220

Compare Source

v1.0.219

Compare Source

  • Prevent absolute_paths Clippy restriction being triggered inside macro-generated code (#​2906, thanks @​davidzeng0)

v1.0.218

Compare Source

  • Documentation improvements
wasm-bindgen/wasm-bindgen (wasm-bindgen)

v0.2.127

Compare Source

Added
  • Navigation API
    to web-sys #​5247

  • Added riscv64gc-unknown-linux-gnu release artifacts.
    #​5265

  • Added JsNullable<T>, modeling WebIDL nullable types (T | null). Both
    null and undefined are treated as absent, per WebIDL's ECMAScript
    conversion rules; the canonical empty value produced from Rust is null.
    web-sys now uses JsNullable<T> instead of JsOption<T> for nullable
    types nested inside generics (e.g. Promise<GpuError?> from
    GPUDevice.popErrorScope()), fixing spec-defined null resolutions being
    treated as present values under JsOption<T>'s strict undefined-only
    semantics. JsNullable<T> participates in the same upcast lattice as
    JsOption<T> (including contravariant closure argument casts), and
    additionally upcasts from Null and from JsOption<T> itself. Imported
    extern types now also upcast into JsOption<JsValue> and
    JsNullable<JsValue>, so catch-all nullable closures can be used where a
    typed callback is expected.
    #​5234

Changed
  • Emscripten output now marks public exports (free functions, classes, enums,
    and namespace roots) with the __export: true and __force: true symbol
    attributes on their addToLibrary entries, instead of mutating
    EXPORTED_FUNCTIONS and pushing to extraLibraryFuncs at library-load time.
    The $initBindgen init closure is kept via __force: true, and private
    symbols (including namespace leaves) carry neither attribute — they remain
    reachable through __deps. Requires an emscripten with __export/__force
    symbol-attribute support.

  • Updated WebGPU bindings to the August 2026 spec, including the new
    GPUCommandEncoder::copy_buffer_to_buffer overloads and setImmediates.
    #​5246

  • Unstable API overload names now elide name tokens shared by every overload
    variant: LockManager::request_with_callback is now request, and
    request_with_options_and_callback is now request_with_options.
    #​5246

Fixed
  • The name property of the JS error thrown for panic=unwind is now set from
    a string literal instead of PanicError.name, so it survives minification.
    #​5260

  • Fixed Emscripten builds using pthreads failing to link.
    #​5254

  • __wbg_load in web targets now throws a clear error including the HTTP
    status and URL when given a non-ok fetch Response, instead of surfacing a
    misleading MIME-type or Wasm-magic-number error.
    #​5256

  • Restored __stack_pointer when an exception unwinds out of a wasm export,
    preventing repeated panic = "unwind" calls from leaking shadow-stack frames
    until the shadow stack is exhausted and calls trap. Node reports
    memory access out of bounds; poisoned instances can instead report
    Module terminated.
    #​5244

  • slice_to_array on a &mut slice (which silently discarded JS's writes) or
    on a slice with a generic element type is now a compile error, and strings
    and arrays received by JS (e.g. a Vec<String> return value) no longer make
    a redundant copy of the freshly built value.
    #​5261

  • Fixed async imports with non-JS-handle resolved types (e.g.
    async fn f() -> u32;) silently producing garbage since 0.2.109: the
    descriptor named the resolved type instead of the Promise handle that
    actually crosses the ABI.
    #5249

  • Fixed catch imports returning i64/u64 throwing a TypeError (and
    panicking in __wbindgen_exn_store) when the JS import throws, since the
    handleError catch path returned undefined which cannot be converted to
    a Wasm i64.
    #​5238

  • js_namespace is now part of an imported function's and imported static's
    generated shim name. Two imports with identical Rust signatures that differed
    only in their js_namespace hashed to the same __wbg_<name>_<hash>
    symbol, so they were treated as one binding and one of the two call sites
    silently invoked the wrong JS value.
    #​5250

  • Macro hygiene fixes - slice_to_array now works in #![no_std] crates.
    Generated code no longer names core or std unqualified.
    #​5251

  • Fixed length prefixes in descriptor strings to count chars rather than
    UTF-8 bytes, so non-ASCII names in js_name/typescript_type no longer
    panic the CLI or mis-bind the generated bindings.
    #​5248

  • Fixed threaded Wasm memory layout to reserve wasm-bindgen's internal thread
    page after the module's original initial memory instead of at __heap_base,
    avoiding overlap with allocators that resolve __heap_base/__heap_end at
    link time and treat that range as preexisting heap space.
    #​5225

  • Emscripten output now reaches wasm exports through emscripten's wasmExports
    object using bracket (string-literal) access (wasmExports['__wbindgen_start'])
    instead of a local wasm alias with dot access. wasmExports['name'] is the
    form emcc's DCE graph roots and its import/export minifier renames in the JS
    and the wasm together, so the glue now survives and stays consistent under
    -O3/-Os (previously the export names were minified without updating the JS
    call sites, e.g. __wbindgen_start is not defined).

  • The emscripten detection marker static is no longer leaked as public API.
    #​5220
    #​5222

v0.2.126

Compare Source

Changed
  • Emscripten output now hoists every clean export (free functions, classes,
    enums, plus their finalization registries and string-enum tables) out of the
    $initBindgen init closure into its own top-level addToLibrary symbol and
    self-registers it into EXPORTED_FUNCTIONS. emscripten then emits the clean
    API (add, Counter, ...) as named ESM exports under -sMODULARIZE=instance
    and as Module.<name> properties (via each symbol's __postset) in factory
    mode, with no extra sidecar files. Namespaced exports are reached through
    their namespace root (e.g. app), assembled in the root symbol's __postset.
    User module/inline-js imports are now wired as addToLibrary shims (they were
    previously dropped, since emcc resolves imports only against env), and their
    ESM-imported bindings are __wbg_-prefixed to avoid colliding with emcc
    runtime names such as Module/HEAP8.
    #​5210
Fixed
  • The descriptor interpreter now follows emscripten invoke_* trampolines.
    emscripten's exception/longjmp lowering rewrites direct calls into indirect
    calls through the function table wrapped in imported invoke_*(fnptr, ..args)
    helpers, including the describe helpers a descriptor function must reach. The
    interpreter resolves fnptr against the reconstructed function table, forwards
    the trailing arguments, and evaluates the surrounding "did it throw?" control
    flow (if/else, loop, br_table), so descriptors are interpreted
    correctly on emscripten builds with unwinding/longjmp enabled.
    #​5215

  • Relaxed alignment requirement for 8-byte types.
    #​5204

  • Fixed compilation with (feature = "std", panic = "unwind", target_feature = "atomics")
    and prevented a Task leak when a future unwinds out of poll (via a Rust
    panic or a foreign JS exception) in both the single-threaded and
    multi-threaded executors.
    #​5214

  • Headless Chrome/Edge tests now surface the WebDriver's own error message when
    session creation fails (e.g. a chromedriver/Chrome version mismatch) instead
    of a confusing http status: 404.
    #​5211

Removed

v0.2.125

Compare Source

Added
  • Added the --force-enable-abort-handler CLI flag, which emits the hard-abort
    detection and set_on_abort machinery on panic=abort builds. With
    panic=unwind this machinery is generated automatically; the flag does
    nothing there.
    #​5191
Changed
  • Made the internal __wbindgen_destroy_closure export private in the Rust API.
    #​5196

v0.2.123

Compare Source

Added
  • Added the maxAge attribute to the CookieInit dictionary in web-sys,
    matching the current Cookie Store API specification.
    #​5169

  • The js-sys futures codegen opt-in can now also be enabled via the
    WASM_BINDGEN_USE_JS_SYS=1 environment variable, in addition to
    --cfg=wasm_bindgen_use_js_sys. This works on stable when --target
    is in use, where Cargo does not propagate the cfg to host proc-macros.
    #​5164

Changed
  • JsOption<T> now treats only undefined as empty, aligning it with
    TypeScript's strict T | undefined semantics and with Option<T>'s wire
    shape (Noneundefined). Previously is_empty, as_option,
    into_option, unwrap, expect, unwrap_or_default, and
    unwrap_or_else treated both null and undefined as absent; JS null
    is now a distinct present value. The impl<T> UpcastFrom<Null> for JsOption<T> is removed (Undefined still models absence), and the
    Debug/Display absent placeholder changed from "null" to
    "undefined". Code relying on null → None should return undefined
    from the JS side, or check explicitly with
    val.as_option().filter(|v| !v.is_null()).
    #​5170
Fixed
  • Removed invalid js_sys::Array<T> to js_sys::ArrayTuple<(...)> upcasts.
    ArrayTuple encodes a fixed tuple arity, while a plain JavaScript array does
    not prove that arity statically.

  • Fixed incorrect variance in &mut reference upcasting. &mut T upcasts
    were covariant in the pointee, so a &mut T could be widened to a &mut
    of a supertype and used to write back a value the original type would not
    accept, leaving a reference whose static type no longer matches the value
    it points to. Mutable references are now invariant in their pointee:
    &mut T only upcasts to &mut Target when both Target: UpcastFrom<T>
    and T: UpcastFrom<Target> hold. This rejects the invalid widening but is
    a breaking change for callers that relied on widening &mut references.
    #​5176

  • Fixed WASI targets (wasm32-wasip1/wasm32-wasip2) emitting unresolved
    __wbindgen_placeholder__ imports, which broke component linking. The
    codegen and runtime gates now exclude target_os = "wasi" (restoring the
    pre-0.2.115 stub behavior), including the panic = "unwind" paths in
    wasm-bindgen-futures.
    #​5175

  • Fixed a panic ("Unhandled load width 8") in the descriptor interpreter when
    processing -Cinstrument-coverage-instrumented modules, unblocking
    cargo llvm-cov --target wasm32-unknown-unknown for crates whose describe
    helpers get instrumented.
    #​5179

  • Fixed main silently never running on wasm64 for bin crates.
    #​5181

v0.2.122

Compare Source

Notices
  • Threading support now requires -Clink-arg=--export=__heap_base to be set
    in RUSTFLAGS for nightly toolchains from 2026-05-06 onward, after
    rust-lang/rust#156174
    removed the implicit __heap_base/__data_end exports on wasm*
    targets. Atomics CI, CLI reference tests, and the nodejs-threads,
    raytrace-parallel, and wasm-audio-worklet examples have been
    updated to pass --export=__heap_base explicitly. The flag is
    backward-compatible with older nightlies.

  • -Cpanic=unwind on wasm targets now emits modern (exnref) exception
    handling by default after
    rust-lang/rust#156061,
    and requires Node.js 22.22.3+ (for WebAssembly.JSTag). Legacy EH wasm
    can still be produced on current nightlies by adding
    -Cllvm-args=-wasm-use-legacy-eh to RUSTFLAGS; Node.js 20 may be
    supported with legacy exception handling, with a tracking issue in
    #​5151.

Added
  • Implemented TryFromJsValue for Vec<T> where T: TryFromJsValue.
    A JS value converts when it is a real Array (per Array.isArray)
    and every element converts via T::try_from_js_value. This composes
    recursively (Vec<Vec<String>>, Vec<Option<T>>) and works for any
    T with a TryFromJsValue impl, including primitives, String,
    JsValue, and JsCast types. Array-likes (objects with length and
    numeric indices) are intentionally rejected to mirror the static ABI
    representation used by js_value_vector_from_abi.

  • New extends_js_class and extends_js_namespace attributes on
    exported structs to allow defining the parent js_class name when
    it has been customized by js_name and the parent's own js_namespace
    as well in turn. New validation is added at code generation time that
    will now catch these cases instead of emitting invalid code. Example:

    #[wasm_bindgen(js_name = "Animal", js_namespace = zoo)]
    pub struct AnimalImpl { /* ... */ }
    
    #[wasm_bindgen(
        extends = AnimalImpl,
        extends_js_class = "Animal",
        extends_js_namespace = zoo,
    )]
    pub struct DogImpl { /* ... */ }
    

    #​5154

Changed
  • When an exported struct uses js_namespace, the corresponding value
    must now be repeated on every impl block. Previously the impl-side
    defaults silently worked resulting in inconsistent emission. Example:

    // Before:
    #[wasm_bindgen(js_namespace = "default")]
    pub struct Counter { /* ... */ }
    
    #[wasm_bindgen]              // worked, but fragile
    impl Counter { /* ... */ }
    
    // After:
    #[wasm_bindgen(js_namespace = "default")]
    pub struct Counter { /* ... */ }
    
    #[wasm_bindgen(js_namespace = "default")]   // now required
    impl Counter { /* ... */ }
    

    To ease this transition for js_namespace usage, diagnostic
    messages now include hints for missing namespaces for easier
    fixing.

    #​5154

Fixed
  • Fixed the descriptor interpreter panicking on Br and BrIf
    instructions emitted by recent nightly compilers when building with
    panic=unwind.
    #​5158

  • Emscripten output now works against vanilla upstream emscripten without
    requiring a fork. Dependency tracking, HEAP_DATA_VIEW setup,
    function-decl intrinsic inlining, catch-wrapper gating, and imported
    global handling have all been corrected; ESM imports
    (#[wasm_bindgen(module = "...")] and snippets) are emitted to a
    sidecar library_bindgen.extern-pre.js consumers pass to emcc via
    --extern-pre-js; namespaced exports (js_namespace = [...] on a
    struct/impl) now attach to Module.<segments> instead of emitting
    top-level export const (which emcc's library evaluator rejects);
    the generated .d.ts for namespaced exports is now valid TypeScript
    (mangled identifiers stay module-internal via declare class /
    declare enum / declare function plus export { BindgenModule };
    to mark the file as a module; no spurious unqualified Calc:
    property on BindgenModule for namespaced items; namespace shapes
    land as plain interface members (app: { math: { Calc: typeof app__math__Calc } };) instead of the previously-emitted export let app: { ... }; which was invalid TS1131 syntax inside an
    interface body).
    #​5156

  • Fixed a duplicate phantom class being emitted for an exported struct
    renamed via js_name (Rust ident != JS class name) and/or placed in a
    js_namespace, when the struct crosses the boundary as a JsValue
    (e.g. via .into()). The WrapInExportedClass / UnwrapExportedClass
    imports were keyed by the Rust ident rather than the qualified JS name
    that exported_classes is keyed by (a regression from #​5154), so a
    fresh empty class entry was minted and emitted alongside the real one,
    with a free() referencing a nonexistent wasm export. Riding the
    same release's #​5154 wire-format bump, the now-vestigial rust_name
    field is dropped from the schema and the namespace-qualified name is
    no longer cached on AuxStruct, AuxEnum, or ExportedClass
    (derived on demand from (name, js_namespace)), collapsing three
    fallback chains that only papered over the pre-#​5154 keying.

    #​5160

v0.2.121

Compare Source

Added
  • Added the slice_to_array attribute for imported JS functions,
    which makes a &[T] (or Option<&[T]>) argument arrive on the JS
    side as a plain Array rather than a typed array — without
    changing the Rust-side &[T] signature. Useful when binding JS
    APIs that take T[] rather than TypedArray<T>. For primitive
    element kinds the wire is the same zero-copy borrow used by plain
    &[T], with the JS-side shim wrapping the view in Array.from(...)
    to materialise the Array — no extra allocation. For String,
    JsValue, and JS-imported element types the Rust side builds a
    fresh [u32] index buffer that JS reads and frees, with per-element
    &T -> JsValue (refcount bump for handle-shaped types). No T: Clone bound is required. The attribute can be set per-fn
    (#[wasm_bindgen(slice_to_array)] fn ...) or per-block on an
    extern "C" { ... } declaration to apply to every imported function
    in that block. &[ExportedRustStruct] remains unsupported (use
    owned Vec<T> for that). Has no effect on exported functions;
    default &[T] (typed-array view / memory borrow) and owned
    Vec<T> semantics are unchanged for callers that didn't opt in.
    See the
    slice_to_array guide page.
    #​5145

  • Added js_sys::AggregateError bindings (constructor, errors getter, and
    new_with_message / new_with_options overloads). AggregateError represents
    multiple unrelated errors wrapped in a single error, e.g. as thrown by
    Promise.any when all input promises reject, along with js_sys::ErrorOptions,
    accepted by built-in error constructors. ErrorOptions::new(cause)
    constructs an instance pre-populated with cause, and get_cause /
    set_cause provide typed access to the property. All standard error
    constructors that previously took only a message (EvalError,
    RangeError, ReferenceError, SyntaxError, TypeError, URIError,
    WebAssembly.CompileError, WebAssembly.LinkError,
    WebAssembly.RuntimeError) now expose a new_with_options(message, &ErrorOptions) overload, and Error gains
    new_with_error_options(message, &ErrorOptions) alongside the existing
    untyped new_with_options. AggregateError::new_with_options also takes
    &ErrorOptions.
    #​5139

  • Added inheritance for Rust-exported types: an exported struct may
    declare #[wasm_bindgen(extends = Parent)] to inherit from another
    exported #[wasm_bindgen] struct. The macro injects a hidden
    parent: wasm_bindgen::Parent<Parent> field (a refcounted cell around
    the parent value) and emits class Child extends Parent in the
    generated JS / .d.ts. The child gets an AsRef<Parent<Parent>> impl
    for the direct parent, and threads per-class pointer slots through
    the wasm ABI so that instanceof Parent is true and parent methods
    dispatch soundly via the JS prototype chain. From inside child
    methods, parent data is reached via self.parent.borrow() /
    self.parent.borrow_mut(). See the new
    extends guide page.
    #​5120

  • Added js_sys::FinalizationRegistry bindings (constructor, register,
    register_with_token, and unregister). The cleanup callback parameter
    is typed as &Function<fn(JsValue) -> Undefined>, so closures created via
    Closure::new can be passed using Function::from_closure (for owned
    closures retained by JS) or Function::closure_ref (for borrowed scoped
    closures). Pairs with the existing js_sys::WeakRef bindings.
    #​5140

  • Added support for well-known symbols in js_name, getter, and
    setter via the explicit bracket-string form
    "[Symbol.<name>]". This works for imported and exported methods,
    fields, getters, and setters. For example,
    #[wasm_bindgen(js_name = "[Symbol.iterator]")] on an exported method
    generates [Symbol.iterator]() { ... } on the generated JS class, and
    the same syntax works for getter / setter and for imported items.
    #​4230

  • Added level 2 bindings for ViewTransition to web-sys.
    #​5138

  • Add support for dynamic unions: a #[wasm_bindgen] enum that mixes string-literal
    variants with single-field tuple variants is now exported as an untagged TypeScript
    union and dispatched dynamically at the JS↔Rust boundary. The new enum-level
    #[wasm_bindgen(fallback)] attribute makes the last tuple variant an
    unconditional catch-all, supporting unions whose trailing variant has no
    runtime check (e.g., interface-only imports). String enums and dynamic
    unions now emit export type (was bare type) so the alias is a named
    export, and both honour the private flag to suppress the keyword.
    #​4734
    #​2153
    #​2088

Fixed
  • From<Promise<T>> for JsFuture<T> and IntoFuture for Promise<T> now
    accept any T: FromWasmAbi (rather than T: JsGeneric), letting
    imported async fns return dynamic-union enums.

  • TryFromJsValue for C-style enums no longer accepts non-numeric values
    via JS unary + coercion. Previously calling dyn_into::<MyEnum>() on
    a string would silently coerce it via +"foo" (yielding NaN, then
    NaN as u32 = 0) and could match a discriminant by accident; the
    conversion now returns None for any value that is not a JS number.
    #​4734

  • Fix compilation failure with no_std + release
    #​5134

  • Raw identifiers (r#name) on enums, enum variants, extern types, statics,
    and impl blocks no longer leak the r# prefix into generated JS / TS
    output and shim names. The Rust-side identifier and the JS-side name are
    now tracked separately for enum variants, and all known identifier
    fallback paths apply Ident::unraw() so e.g.
    pub enum r#Enum { r#A } generates Enum.A instead of producing
    syntactically invalid JS.
    #​4323

  • Using the -C panic=unwind option when building for the bundler target
    would produce invalid JS.
    #​5142

Changed
  • js_sys::DataView now implements the js_sys::TypedArray trait. A
    FIXME notes that the trait should be renamed to ArrayBufferView in
    the next major release to better reflect the WebIDL spec name covering
    both DataView and the typed-array types.
    #​5135

v0.2.120

Compare Source

Added
  • Added support for the wasm64-unknown-unknown target (memory64 / wasm64).
    usize / isize and raw pointers are now lowered through an f64 JS
    number ABI on wasm64 (matching the existing convention used for Option<u32>
    etc. on wasm32), with the CLI inspecting the module's memory type to pick
    the right codegen path. Includes a dedicated wasm64 CI job and test
    suite covering the new ABI paths.
    #​5004

  • Promise ergonomics: Promise::all_tuple and Promise::all_settled_tuple
    for heterogeneous concurrent awaits (arity 1..=8, destructure via
    .into_tuple()), and a new wasm_bindgen::IntoJsGeneric trait underpinning
    typed-Array inference (with codegen-emitted identity impls and a
    #[wasm_bindgen(no_into_js_generic)] opt-out for types like JsClosure).
    Also re-exports JsGeneric from the prelude. Typed collection on
    js_sys::Array<T> is exposed as the inherent constructor
    Array::<T>::from_iter_typed (and companion extend_typed), inferring T
    from the iterator item via IntoJsGeneric. The stable FromIterator /
    Extend impls on Array (= Array<JsValue>) bound by AsRef<JsValue>
    are preserved, so existing .collect::<Array>() call sites keep compiling
    unchanged. Fixes #​5042.
    #​5121,
    #​5125

  • Added wasm_bindgen::instance() to return the current
    WebAssembly.Instance. The generated JS glue retains the
    instantiated WebAssembly.Instance.
    #​5118

  • Added a --cfg=wasm_bindgen_use_js_sys opt-in that makes async macro codegen
    use js_sys::futures instead of wasm_bindgen_futures, dropping the need
    for wasm-bindgen-futures when the crate already depends on js-sys. A cfg
    is used rather than a Cargo feature so the choice stays scoped to the crate
    that opts in.
    #​5112
    #​5127

Changed
  • Simplified generated web-sys bindings by omitting redundant
    #[wasm_bindgen] attributes when they match wasm-bindgen defaults, including
    structural method annotations and matching js_name entries. The
    #[wasm_bindgen] attribute parser now also accepts string-literal forms for
    extends, static_method_of, and vendor_prefix (alongside the existing
    bare-path/ident syntax), and the generator emits these arguments along with
    js_name as string literals so rustfmt can format the generated
    #[wasm_bindgen(...)] attributes uniformly.
    #​5122
Fixed
  • Fixed namespaced export identifiers in generated JS/TS to use qualified names
    consistently, resolving order-dependent codegen issues across platforms. Also
    fixed Vec<T> types in TS signatures to resolve through the identifier map.
    #​5106

  • Fixed wasm-bindgen-test-runner treating ChromeDriver stderr warnings as
    startup failures on macOS, causing a restart loop until timeout. The runner
    no longer uses stderr output to determine if a driver has failed; instead a
    per-attempt timeout detects stuck drivers and retries on a new port.
    #​5111

v0.2.118

Compare Source

Added
  • Added Error::stack_trace_limit() and Error::set_stack_trace_limit() bindings
    to js-sys for the non-standard V8 Error.stackTraceLimit property.
    #​5082

  • Added support for multiple #[wasm_bindgen(start)] functions, which are
    chained together at initialization, as well as a new
    #[wasm_bindgen(start, private)] to register a start function without
    exporting it as a public export.
    #​5081

  • Reinitialization is no longer automatically applied when using panic=unwind
    and --experimental-reset-state-function, instead it is triggered by any
    use of the handler::schedule_reinit() function under panic=unwind,
    which is supported from within the on_abort handler for reinit workflows.
    Renamed handler::reinit() to handler::schedule_reinit() and removed
    the set_on_reinit() handler. The __instance_terminated address
    is now always a simple boolean (0 = live, 1 = terminated).
    #​5083

  • handler::schedule_reinit() now works under panic=abort builds. Previously
    it was a no-op; it now sets the JS-side reinit flag and the next export call
    transparently creates a fresh WebAssembly.Instance.
    #​5099

Changed
  • MSRV bump from 1.71 to 1.76 for the CLI, and 1.82 to 1.86 for the API
    #​5102
Fixed
  • ES module import statements are now hoisted to the top of generated JS
    files, placed right after the @ts-self-types directive. This ensures
    valid ES module output since import declarations must precede other
    statements.
    #​5103

  • Fixed two CLI issues affecting WASM modules built by rustc 1.94+. First,
    a panic (failed to find N in function table) caused by lld emitting element
    segment offsets as global.get $__table_base or extended const expressions
    instead of plain i32.const N for large function tables; the fix adds a
    const-expression evaluator in get_function_table_entry and guards against
    integer underflow in multi-segment tables. Second, the descriptor interpreter
    now routes all global reads/writes through a single globals HashMap seeded
    from the module's own globals, and mirrors the module's actual linear memory
    rather than a fixed 32KB buffer, so the stack pointer's real value is valid
    without any override. This fixes panics like failed to find 32752 in function table caused by GOT.func.internal.* globals being misidentified as the
    stack pointer.
    #​5076
    #​5080
    #​5093
    #​5095

v0.2.117

Compare Source

Fixed
  • Fixed a regression introduced in #​5026 where stable web-sys methods that
    accept a union type containing a [WbgGeneric] interface (e.g.
    ImageBitmapSource, which includes VideoFrame) incorrectly applied typed
    generics to all union expansions rather than only those whose argument type
    is itself [WbgGeneric]. In practice this caused Window::create_image_bitmap_with_*
    and the corresponding WorkerGlobalScope overloads to return
    Promise<ImageBitmap> instead of Promise<JsValue> for the stable
    (non-VideoFrame) call sites, breaking JsFuture::from(promise).await?.
    #​5064
    #​5073

  • Fixed handling logic for environment variable WASM_BINDGEN_TEST_ADDRESS in
    the test runner, when running tests in headless mode.
    #​5087

v0.2.116

Compare Source

Added
  • Added js_sys::Float16Array bindings, DataView float16 accessors using
    f32, and raw [u16] helper APIs for interoperability with binary16
    representations such as half::f16.
    #​5033
Changed
  • Updated to Walrus 0.26.1 for deterministic type section ordering.
    #​5069

  • The #[wasm_bindgen] macro now emits &mut (impl FnMut(...) + MaybeUnwindSafe)
    / &(impl Fn(...) + MaybeUnwindSafe) for raw &mut dyn FnMut / &dyn Fn
    import arguments instead of a hidden generic parameter and where-clause. The
    generated signature is cleaner and the MaybeUnwindSafe bound is visible
    directly in the argument position. The ABI and wire format are unchanged.
    When building with panic=unwind, closures that capture non-UnwindSafe
    values (e.g. &mut T, Cell<T>) must wrap them in AssertUnwindSafe before
    capture; on all other targets MaybeUnwindSafe is a no-op blanket impl.
    #​5056

v0.2.115

Compare Source

Added
  • console.debug/log/info/warn/error output from user-spawned Worker and
    SharedWorker instances is now forwarded to the CLI test runner during
    headless browser tests, just like output from the main thread. Works for
    blob URL workers, module workers, URL-based workers (importScripts), nested
    workers, and shared workers (including logs emitted before the first port
    connection). Non-cloneable arguments are serialized via String() rather
    than crashing the worker. The --nocapture flag is respected.
    #​5037

  • js_sys::Promise<T> now implements IntoFuture, enabling direct .await on
    any JS promise without a wrapper type. The wasm-bindgen-futures implementation
    has been moved into js-sys behind an optional futures feature, which is
    activated automatically when wasm-bindgen-futures is a dependency. All
    existing wasm_bindgen_futures::* import paths continue to work unchanged via
    re-exports. js_sys::futures is also available directly for users who want
    promise.await without depending on wasm-bindgen-futures.
    #​5049

  • Added --target emscripten support, generating a library_bindgen.js file
    for consumption by Emscripten at link time. Includes support for futures,
    JS closures, and TypeScript output. A new Emscripten-specific test runner is
    also included, along with CI integration.
    #​4443

  • Added VideoFrame, VideoColorSpace, and related WebCodecs dictionaries/enums to web-sys.
    #​5008

  • Added wasm_bindgen::handler module with set_on_abort and set_on_reinit
    hooks for panic=unwind builds. set_on_abort registers a callback invoked
    after the instance is terminated (hard abort, OOM, stack overflow).
    set_on_reinit registers a callback invoked after reinit() resets the
    WebAssembly instance via --experimental-reset-state-function. Handlers are
    stored as Wasm indirect-function-table indices so dispatch is safe even when
    linear memory is corrupt.

Changed
  • Replaced per-closure generic destructors with a single __wbindgen_destroy_closure
    export.
    #​5019

  • Refactored the headless browser test runner logging pipeline for dramatically improved
    performance (>400x faster on Chrome, >10x on Firefox, ~5x on Safari). Switched to
    incremental DOM scraping with textContent.slice(offset), append-only output semantics,
    unified log capture across all log levels on failure, and browser-specific invisible-div
    optimizations (display:none for Chrome/Firefox, visibility:hidden for Safari).
    #​4960

  • TTY-gated status/clear output in the test runner shell to avoid \r control-character
    artifacts in non-interactive (CI) environments.
    #​4960

  • Added bench_console_log_10mb benchmark alongside the existing 1MB benchmark for the
    headless test runner. The main branch cannot complete this benchmark at any volume.
    #​4960

  • Updated to Walrus 0.26
    #​5057

Fixed
  • Fixed argument order when calling multi-parameter functions in the
    wasm-bindgen interpreter by reversing the args collected from the stack.
    #​5047

  • Added support for per-operation [WbgGeneric] in WebIDL, restoring typed
    generic return types (e.g. Promise<ImageBitmap>) for createImageBitmap on
    Window and WorkerGlobalScope that were lost after the VideoFrame
    stabilization.
    #​5026

  • Fixed missing #[cfg(feature = "...")] gates on deprecated dictionary builder
    methods and getters for union-typed fields (e.g. {Open,Save,Directory}FilePickerOptions::start_in()),
    and fixed per-setter doc requirements to list each setter's own required features.
    #​5039

  • Fixed JsOption::new() to use undefined instead of null, to be compatible with Option::None and JS default parameters.
    #​5023

  • Fixed unsound unsafe transmutes in JsOption<T>::wrap, as_option, and into_option
    by replacing transmute_copy with unchecked_into(). Also tightened the JsGeneric
    trait bound and JsOption<T> impl block to require T: JsGeneric (which implies JsCast),
    preventing use with arbitrary non-JS types.
    #​5030

  • Fixed headless test runner emitting \r carriage-return sequences in non-TTY environments,
    which polluted captured logs in CI and complicated output-matching tests.
    #​4960

  • Fixed headless test runner printing incomplete and out-of-order log output on test failures
    by merging all five log levels into a single unified output div.
    #​4960

  • Fixed large test outputs (10MB+) causing oversized WebDriver responses that were either
    extremely slow or crashed completely, by switching to incremental streaming output collection.
    #​4960

  • Fixed a duplciate wasm export in node ESM atomics, when compiled in debug mode
    #​5028

  • Fixed a type inference regression (E0283: type annotations needed) introduced
    in v0.2.109 where the stable FromIterator and Extend impls on js_sys::Array
    were changed from A: AsRef<JsValue> to A: AsRef<T>. Because #[wasm_bindgen]
    generates multiple AsRef impls per type, the compiler could not uniquely resolve
    T, breaking code like Array::from_iter([my_wasm_value]) without explicit
    annotations. The stable impls are restored to A: AsRef<JsValue> (returning
    Array<JsValue>); the generic A: AsRef<T> forms remain available under
    js_sys_unstable_apis.
    #​5052

  • Fixed skip_typescript not being respected when using reexport, causing
    TypeScript definitions to be incorrectly emitted for re-exported items marked
    with #[wasm_bindgen(skip_typescript)].
    #​5051

Removed

v0.2.114

Compare Source

Added
  • Added [WbgGeneric] WebIDL extended attribute for opting stable dictionary and interface
    definitions into typed generics (the same signatures unstable APIs use), avoiding legacy
    &JsValue fallbacks. Applied to all new VideoFrame-related types.
    #​5008

  • Added unchecked_optional_param_type attribute for marking exported function parameters as
    optional in TypeScript (?:) and JSDoc ([paramName]) output. Mutually exclusive with
    unchecked_param_type. Required parameters after optional parameters are rejected at compile time.
    #​5002

  • Added termination detection for panic=unwind builds. When a non-JS exception (e.g. a Rust
    panic) escapes from Wasm, the instance is marked as terminated and subsequent calls from JS
    into Wasm will throw a Module terminated error instead of re-entering corrupted state.
    #​5005

  • When --reset-state is combined with panic=unwind builds, the Wasm instance is
    automatically reset after a fatal termination, allowing subsequent calls to succeed
    instead of throwing a Module terminated error.
    #​5013

Changed
  • Replaced runtime 0x80000000 vtable bit-flag for closure unwind safety with a
    compile-time const UNWIND_SAFE: bool generic on the invoke shim, OwnedClosure,
    and BorrowedClosure. Removes OwnedClosureUnwind and deduplicates internal
    closure helpers. The public API is unchanged.
    #​5003

  • Removed unused IntoWasmClosureRef*::WithLifetime types,
    WasmClosure::to_wasm_slice, and a lifetime from
    IntoWasmClosureRef*; moved Static associated type into WasmClosure.
    #​5003

Fixed
  • Fixed exported structs/enums/functions with the same js_name but different
    js_namespace values producing symbol collisions at compile time, by deriving
    internal wasm symbols from a qualified name that includes the namespace.
    #​4977

  • Fixed soundness hole in ScopedClosure's UpcastFrom that allowed to extend the lifetime after the original ScopedClosure was dropped.
    #​5006

v0.2.113

Compare Source

Changed
  • Reduced usage of unsafe code: replaced transmute/transmute_copy with safe
    alternatives for Boolean/Null/Undefined constants and ArrayTuple conversions,
    unified duplicated AsRef/From impls for generic imported types, and removed the
    __wbindgen_object_is_undefined intrinsic in favor of a safe Rust-side equivalent.
    #​4993

  • Renamed __wbindgen_object_is_null_or_undefined intrinsic to
    __wbindgen_is_null_or_undefined and removed the __wbindgen_object_is_undefined
    intrinsic, replacing it with a safe Rust-side check. The is_null_or_undefined check
    now uses safe &JsValue ABI instead of raw u32.
    #​4994

Fixed
  • Fixed incorrect method naming for stable web-sys methods that reference unstable
    types (e.g. texImage2D taking a VideoFrame parameter). These methods were
    being named in a separate unstable expansion namespace, producing overly-short
    names like tex_image_2d instead of the correct
    tex_image_2d_with_u32_and_u32_and_video_frame. The fix separates the signature
    classification to distinguish "from unstable IDL" (authoritative overrides) from
    "stable method using an unstable type", ensuring the latter is named as part of
    the stable expansion.
    #​4991

v0.2.112

Compare Source

Removed
  • Removed ImmediateClosure type introduced in 0.2.109. Stack-borrowed &dyn Fn / &mut dyn FnMut
    closures are now treated as unwind safe by default (panics are caught and converted to JS exceptions
    with proper unwinding). A unified ScopedClosure::immediate approach may be revisited in a future
    release.
    #​4986

v0.2.111

Compare Source

Fixed
  • Restored backwards compatibility for breaking changes introduced in 0.2.110:
    re-added deprecated Promise::then2 binding, reverted Promise::all_settled
    stable signature to take &JsValue instead of owned Object, and added
    default type parameters (= JsValue) to ArrayIntoIter, ArrayIter, and
    Iter structs.
    #​4979

v0.2.110

Compare Source

Changed
  • Refactor new closure methods - ensures that all closure constructor functions have the variants Closure::foo(), Closure::foo_aborting() and
    Closure::foo_assert_unwind_safe() this then fully allows switching from the UnwindSafe bound now being applies on foo() to use one of the
    alternatives, given these limitations of AssertUnwindSafe. The same applies to ImmediateClosure. In addition, mutable reentrancy guards are
    added for ImmediateClosure, and it is updated to be pass-by-value as well.
    #​4975
Fixed
  • Fixed a regression where Array.of1,... variants using generic Array<T> broke inference.
    Reverted to use non-generic JsValue arguments. In addition extends generic class hoisting to
    for constructors to also include static_method_of methods returning the own type, to allow
    Array::of generic to now be on the Array<T> impl block.
    #​4974

v0.2.109

Compare Source

Added
  • Added support for erasable generic type parameters on imported JavaScript types,
    using sound type erasure in JS bindgen boundary. Includes updated js-sys bindings
    with generic implementations for many standard JS types and functions including
    Array<T>, Promise<T>, Map<K, V>, Iterator<T>, and more.
    #​4876

  • Added ScopedClosure<'a, T> as a unified closure type with lifetime parameter. ScopedClosure::borrow(&f) (for immutable Fn) and ScopedClosure::borrow_mut(&mut f) (for mutable FnMut) create borrowed closures that can capture non-'static references, ideal for immediate/synchronous JS callbacks. Closure<T> is now a type alias for ScopedClosure<'static, T>, maintaining backwards compatibility. Also added IntoWasmAbi implementation for Closure<T> enabling pass-by-value ownership transfer to JavaScript.

  • Added ImmediateClosure<'a, T> as a lightweight, unwind-safe replacement for
    &dyn FnMut in immediate/synchronous callbacks. Unlike ScopedClosure, it has
    no JS call on creation, no JS call on drop, and no GC overhead—the same ABI as
    &dyn FnMut but with panic safety. Use ImmediateClosure::new(&f) for
    immutable Fn closures (easier to satisfy unwind safety) or ImmediateClosure::new_mut(&mut f) for
    mutable FnMut closures. Closure parameter types are automatically inferred from context.
    Also implements From<&ImmediateClosure<T>> for ScopedClosure<T> for API migration.
    #​4950

  • Implement #[wasm_bindgen(catch)] exception handling directly in Wasm using
    WebAssembly.JSTag when Wasm exception handling is available. This generates
    smaller and faster code by avoiding JavaScript handleError wrapper functions.
    #​4942

  • Add Node.js worker_threads support for atomics builds. When targeting Node.js with atomics enabled, wasm-bindgen now generates initSync({ module, memory, thread_stack_size }) and __wbg_get_imports(memory) functions that allow worker threads to initialize with a shared WebAssembly.Memory and pre-compiled module. Auto-initialization occurs only on the main thread for backwards compatibility.

  • Added a panic message when a getter has more than one argument.
    #​4936

  • Added support for WebIDL namespace attributes in wasm-bindgen-webidl. This enables
    APIs like the CSS Custom Highlight API which adds the highlights attribute to the CSS namespace.
    #​4930

  • Added stable ShowPopoverOptions dictionary and show_popover_with_options() method to
    HtmlElement, and unstable TogglePopoverOptions dictionary per the WHATWG HTML spec.
    #​4968

  • Added unstable Geolocation API types per the latest W3C spec: GeolocationCoordinates,
    GeolocationPosition, and GeolocationPositionError. The Geolocation interface now
    has both stable methods (using the old Position/PositionError types with [Throws])
    and unstable methods (using the new types without [Throws]}, matching actual browser behavior).
    #​2578

  • Added matrixTransform() method to DOMPointReadOnly in web-sys.
    #​4962

  • Added the web and node targets to the --experimental-reset-state-function flag.
    #​4909

  • Added oncancel event handler to GlobalEventHandlers (available on HtmlElement,
    Document, Window, etc.).
    #​4542

  • Added CommandEvent and CommandEventInit from the Invoker Commands API.
    #​4552

  • Added AbstractRange, StaticRange, and StaticRangeInit interfaces.
    #​4221

  • Updated WebCodecs API to Working Draft 2026-01-29 and MediaRecorder API to 2025-04-17.
    Added rotation and flip to VideoDecoderConfig.
    #​4411

  • Added support for unstable WebIDL to override stable attribute types, allowing
    corrected type signatures behind web_sys_unstable_apis. Applied to MouseEvent
    coordinate attributes (clientX, clientY, screenX, screenY, offsetX,
    offsetY, pageX, pageY) which now return f64 instead of i32 when
    unstable APIs are enabled, per the CSSOM View spec draft.
    #​4935

  • Added support for unstable WebIDL to override stable method return types. This
    enables User Timing Level 3 APIs where Performance.mark() and Performance.measure()
    return PerformanceMark and PerformanceMeasure respectively (instead of undefined)
    when web_sys_unstable_apis is enabled. Also added PerformanceMarkOptions,
    PerformanceMeasureOptions, and the detail attribute on marks/measures.
    #​3734

  • Added non-standard mode option for FileSystemFileHandle.createSyncAccessHandle().
    Also improved WebIDL generator to track stability at the signature level, allowing
    stable methods to have unstable overloads.
    #​4928

  • Updated WebGPU bindings to the February 2026 spec. Dictionary fields with union
    types now generate multiple type-safe setters (e.g. set_resource_gpu_sampler(),
    set_resource_gpu_texture_view()) alongside a deprecated fallback setter. Sequence
    arguments in unstable APIs now use typed slices (&[T]) instead of &JsValue.
    Fixed inner string enum types to use JsString in generic positions, added BigInt
    to builtin identifiers, and fixed dictionary field feature gates to not over-constrain
    getters with setter type requirements.
    #​4955

  • Improved dictionary union type expansion: stable fallback setters are no longer
    deprecated, and unstable builder methods now use the first typed variant instead
    of &JsValue. Dictionaries with required union fields now generate expanded
    constructors for each variant (e.g. new(), new_with_gpu_texture_view()),
    with duplicate-signature variants elided.
    #​4966

Changed
  • Increased externref stack size from 128 to 1024 slots to prevent "table index is out of bounds"
    errors in applications with deep call stacks or many concurrent async operations.
    #​4951

  • Closure::new(), Closure::once(), and related methods now require UnwindSafe bounds on closures when building with panic=unwind. New _aborting variants (new_aborting(), once_aborting(), etc.) are provided for closures that don't need panic catching and want to avoid the UnwindSafe requirement.
    #​4893

  • global does not use the unsafe-eval new Function trick anymore allowing to have CSP strict compliant packages with wasm-bindgen.
    #​4910

  • eval and Function constructors are now gated behind the unsafe-eval feature.
    #​4914

Fixed
  • Fixed incorrect JS export names when LLVM merges identical functions at opt-level >= 2.
    #​4946

  • Fixed incorrect Closure adapter deduplication when wasm-ld's Identical Code Folding merges
    invoke functions for different closure types into the same export.
    #​4953

  • Fixed ReferenceError when using Rust struct names that conflict with JS builtins (e.g., Array).
    The constructor now correctly uses the aliased FinalizationRegistry identifier.
    #​4932

  • Fixed Element::scroll_top(), Element::scroll_left(), and HtmlElement::scroll_top()
    to return f64 instead of i32 per the CSSOM View spec, behind web_sys_unstable_apis.
    The stable API is unchanged for backwards compatibility.
    #​4525

  • Added spec-compliant i32 parameter types for CanvasRenderingContext2d::get_image_data()
    and put_image_data() (and OffscreenCanvasRenderingContext2d equivalents) behind
    web_sys_unstable_apis. Per the HTML spec, getImageData and putImageData use long
    (i32) for coordinates, not double (f64). The stable API is unchanged for backwards
    compatibility.
    #​1920

  • Fixed incorrect #[cfg(web_sys_unstable_apis)] gating on stable method signatures that
    share a WebIDL operation with unstable overloads. For example, Clipboard.read() (0 args)
    was incorrectly gated as unstable because the unstable read(options) overload existed.
    The WebIDL code generator now uses an authoritative expansion model where stable and unstable
    signature sets are built independently and compared: identical signatures merge (no gate),
    stable-only signatures get not(unstable), and unstable-only signatures get unstable.
    Also adds typed generics (Promise<T>, Array<T>, Function<fn(...)>, etc.) to all
    unstable API methods, and adds missing PhotoCapabilities, PhotoSettings,
    MediaSettingsRange, Point2D, RedEyeReduction, FillLightMode, and MeteringMode
    types from the W3C Image Capture spec.
    #​4964

  • Fixed unfulfilled_lint_expectations warnings when using #[expect(...)] attributes
    on functions annotated with #[wasm_bindgen]. The #[expect] attributes are now
    converted to #[allow] in generated code to prevent spurious warnings.
    #​4409

v0.2.108

Compare Source

Fixed
  • Fixed regression where panic=unwind builds for non-Wasm targets would trigger UnwindSafe assertions.
    #​4903

v0.2.107

Compare Source

Added
  • Support catching panics, and raising JS Exceptions for them, when building
    with panic=unwind on nightly, with the std feature.
    #​4790

  • Added support for passing &[JsValue] slices from Rust to JavaScript functions.
    #​4872

  • Added private attribute on exported types to allow generating
    exports and structs as implicit internal exported types for function
    arguments and returns, without exporting them on the public interface.
    #​4788

  • Added iter_custom and iter_custom_future for bench to do custom measurements.
    #​4841

  • Added Window Management API.
    #​4843

Changed
  • Changed WASM import namespace from wbg to ./{name}_bg.js for web and no-modules targets,
    aligning with bundler and experimental-nodejs-module to enable cross-target WASM sharing.
    #​4850

  • Replace WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_OUT and WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_PREFIX with parsing LLVM_PROFILE_FILE analogous to Rust test coverage.
    #​4367

  • Typescript custom sections sorted alphabetically across codegen-units.
    #​4738

  • Optimized demangling performance by removing redundant string formatting
    #​4867

  • Changed WASM import namespace from __wbindgen_placeholder__ to ./{name}_bg.js for node targets, aligning with bundler and experimental-nodejs-module to enable cross-target WASM sharing.
    #​4869

  • Changed WASM import namespace from __wbindgen_placeholder__ to ./{name}_bg.js for deno and module targets, aligning with node, bundler and experimental-nodejs-module to enable cross-target WASM sharing.
    #​4871

  • Consolidate JavaScript glue generation
    Move target-specific JS emission into a single finalize phase, reducing
    branching and making the generated output more consistent across targets.

    • Centralize JS output assembly in a single finalize phase (exports/imports/wasm loading).
    • Make --target experimental-nodejs-module emit one JS entrypoint (no separate _bg.js).
    • Ensure Node (CJS/ESM) and bundler entrypoints only expose public exports (no internal import shims).
    • Add /* @&#8203;ts-self-types="./<name>.d.ts" */ to JS entrypoints for JSR/Deno resolution.
    • Refresh reference test fixtures.
      #​4879
  • Forward worker errors to test output in the test runner.
    #​4855

Fixed
  • Fix: Include doc comments in TypeScript definitions for classes
    #​4858

  • Interpreter: support try_table blocks
    #​4862

  • Interpreter: Stop interpretting descriptor after __wbindgen_describe_cast
    #​4862

v0.2.106

Compare Source

Added
  • New MSRV policy, and bump of the MSRV fo 1.71.
    #​4801

  • Added CSS Custom Highlight API to web-sys.
    #​4792

  • Added typed this support in the first argument in free function exports via
    a new #[wasm_bindgen(this)] attribute.
    #​4757

  • Added reexport attribute for imports to support re-exporting imported types,
    with optional renaming.
    #​4759

  • Added js_namespace attribute on exported types, mirroring the import
    semantics to enable arbitrarily nested exported interface objects.
    #​4744

  • Added 'container' attribute to ScrollIntoViewOptions
    #​4806

  • Updated and refactored output generation to use alphabetical ordering
    of declarations.
    #​4813

  • Added benchmark support to wasm-bindgen-test.
    #​4812
    #​4823

Fixed
  • Fixed node test harness getting stuck after tests completed.
    #​4776

  • Quote names containing colons in generated .d.ts.
    #​4488

  • Fixes TryFromJsValue for structs JsValue stack corruption on failure.
    #​4786

  • Fixed wasm-bindgen-test-runner outputting empty line when using the --list option. In particular, cargo-nextest now works correctly.
    #​4803

  • It now works to build with -Cpanic=unwind.
    #​4796
    #​4783
    #​4782

  • Fixed duplicate symbols caused by enabling v0 mangling.
    #​4822

  • Fixed a multithreaded wasm32+atomics race where Atomics.waitAsync promise callbacks could call run without waking first, causing sporadic panics.
    #​4821

Removed

v0.2.105

Compare Source

Added
  • Added Math::PI binding to js_sys, exposing the ECMAScript Math.PI constant.
    #​4748

  • Added ability to use --keep-lld-exports in wasm-bindgen-test-runner by setting the WASM_BINDGEN_KEEP_LLD_EXPORTS environment variable.
    #​4736

  • Added CookieStore API.
    #​4706

  • Added run_cli_with_args library functions to all wasm_bindgen_cli entrypoints.
    #​4710

  • Added get_raw and set_raw for WebAssembly.Table.
    #​4701

  • Added new_with_value and grow_with_value for WebAssembly.Table.
    #​4698

  • Added better support for async stack traces when building in debug mode.
    #​4711

  • Extended support for TryFromJsValue trait implementations.
    #​4714

  • New JsValue.is_null_or_undefined() method and intrinsic.
    #​4751

  • Support for Option<JsValue> in function arguments and return.
    #​4752

  • Support for WASM_BINDGEN_KEEP_TEST_BUILD=1 environment variable
    to retain build files when using the test runner.
    #​4758

Fixed
  • Fixed multithreading JS output for targets bundler, deno and module.
    #​4685

  • Fixed TextDe/Encoder detection for audio worklet use-cases.
    #​4703

  • Fixed post-processing failures in case Std has debug assertions enabled.
    #​4705

  • Fixed JS memory leak in wasm_bindgen::Closure.
    #​4709

  • Fixed warning when using #[wasm_bindgen(wasm_bindgen=xxx)] on struct.
    #​4715

Removed
  • Internal crate wasm-bindgen-backend will no longer be published.
    #​4696

v0.2.104

Compare Source

Added
  • Added bindings for WeakRef.
    #​4659

  • Support Symbol.dispose methods by default, when it is supported in the environment.
    #​4666

  • Added aarch64-unknown-linux-musl release artifacts.
    #​4668

Changed
  • Unconditionally use the global TextEncoder/TextDecoder for string encoding/decoding. The Node.js output now requires a minimum of Node.js v11.
    #​4670

  • Deprecate the msrv crate feature. MSRV detection is now always on.
    #​4675

Fixed
  • Fixed wasm-bindgen-cli's encode_into argument not working.
    #​4663

  • Fixed a bug in --experimental-reset-state-function support for heap reset.
    #​4665

  • Fixed compilation failures on Rust v1.82 and v1.83.
    #​4675


v0.2.103

Compare Source

Fixed
  • Fixed incorrect function mapping during post-processing.
    #​4656

v0.2.102

Compare Source

Added
  • Added DocumentOrShadowRoot.adoptedStyleSheets.
    #​4625

  • Added support for arguments with spaces using shell-style quoting in webdriver *_ARGS
    environment variables to wasm-bindgen-test.
    #​4433

  • Added ability to determine WebDriver JSON config location via
    WASM_BINDGEN_TEST_WEBDRIVER_JSON environment variable to
    wasm-bindgen-test.
    #​4434

  • Generate DWARF for tests by default. See the guide on debug information for more details.
    #​4635

  • New --target=module target for outputting source phase imports.
    #​4638

Changed
  • Hidden deprecated options from the wasm-bindgen --help docs.
    #​4646
Fixed
  • Fixed wrong method names for GestureEvent bindings.
    #​4615

  • Fix crash caused by allocations during TypedArray interactions.
    #​4622


v0.2.101

Compare Source

Added
  • Added format and colorSpace support to VideoFrameCopyToOptions
    #​4543

  • Added support for the onbeforeinput attribute.
    #​4544

  • TypedArray::new_from_slice(&[T]) constructor that allows to create a
    JS-owned TypedArray from a Rust slice.
    #​4555

  • Added Function::call4 and Function::bind4 through Function::call9 Function::bind9 methods for calling and binding JavaScript functions with 4-9 arguments.
    #​4572

  • Added isPointInFill and isPointInStroke methods for the SVGGeometryElement idl.
    #​4509

  • Added unstable bindings for GestureEvent.
    #​4589

  • Stricter checks for module, raw_module and inline_js attributes applied to inapplicable items.
    #​4522

  • Add bindings for PictureInPicture.
    #​4593

  • Added bytes method for the Blob idl
    #​4506

  • Add error message when export symbol is not found
    #​4594

Changed
  • Deprecate async constructors.
    #​4402

  • The size argument to GPUCommandEncoder.copyBufferToBuffer is now optional.
    #​4508

  • MSRV of CLI tools bumped to v1.82. This does not affect libraries like wasm-bindgen, js-sys and web-sys!
    #​4608

Fixed
  • Detect more failure scenarios when retrieving the Wasm module.
    #​4556

  • Add a workaround for TextDecoder failing in older version of Safari when too many bytes are decoded through it over its lifetime.
    #​4472

  • TypedArray::from(&[T]) now works reliably across memory reallocations.
    #​4555

  • Fix incorrect memory loading and storing assertions during post-processing.
    #​4554

  • Fix test --exact option not working as expected.
    #​4549

  • Fix tables being removed even though they are used by stack closures.
    #​4119

  • Skip __wasm_call_ctors which we don't want to interpret.
    #​4562

  • Fix infinite recursion caused by the lack of proc-macro hygiene.
    #​4601

  • Fix running coverage with no_modules.
    #​4604

  • Fix proc-macro hygiene with core.
    #​4606

Removed
  • Crates intended purely for internal consumption by the wasm-bindgen CLI will no longer be published:
    #​4608

    • wasm-bindgen-externref-xform
    • wasm-bindgen-multi-value-xform
    • wasm-bindgen-threads-xform
    • wasm-bindgen-wasm-conventions
    • wasm-bindgen-wasm-interpreter

v0.2.100

Compare Source

Released 2025-01-12

Added
  • Add attributes to overwrite return (``unchecked_return_type) and parameter types (unchecked_param_type), descriptions (return_descriptionandparam_description) as well as parameter names (js_name`) for exported functions and methods. See the guide for more details.
    #​4394

  • Add a copy_to_uninit() method to all TypedArrays. It takes &mut [MaybeUninit<T>] and returns &mut [T].
    #​4340

  • Add test coverage support for Node.js.
    #​4348

  • Support importing memory and using wasm_bindgen::module() in Node.js.
    #​4349

  • Add --list, --ignored, --exact and --nocapture to wasm-bindgen-test-runner, analogous to cargo test.
    #​4356

  • Add bindings to Date.to_locale_time_string_with_options.
    #​4384

  • #[wasm_bindgen] now correctly applies #[cfg(...)]s in structs.
    #​4351

Changed
  • Optional parameters are now typed as T | undefined | null to reflect the actual JS behavior.
    #​4188

  • Adding getter, setter, and constructor methods to enums now results in a compiler error. This was previously erroneously allowed and resulted in invalid JS code gen.
    #​4278

  • Handle stuck and failed WebDriver processes when re-trying to start them.
    #​4340

  • Align test output closer to native cargo test.
    #​4358

  • Error if URL in <WEBDRIVER>_REMOTE can't be parsed instead of just ignoring it.
    #​4362

  • Remove WASM_BINDGEN_THREADS_MAX_MEMORY and WASM_BINDGEN_THREADS_STACK_SIZE. The maximum memory size can be set via -Clink-arg=--max-memory=<size>. The stack size of a thread can be set when initializing the thread via the default function.
    #​4363

  • console.*() calls in tests are now always intercepted by default. To show them use --nocapture. When shown they are always printed in-place instead of after test results, analogous to cargo test.
    #​4356

Fixed
  • Fixed using JavaScript keyword as identifiers not being handled correctly.
    #​4329

    • Using JS keywords as struct and enum names will now error at compile time, instead of causing invalid JS code gen.
    • Using JS keywords that are not valid to call or access properties on will now error at compile time, instead of causing invalid JS code gen if used as:
      1. The first part of a js_namespace on imports.
      2. The name of an imported type or constant if the type or constant does not have a js_namespace or module attribute.
      3. The name of an imported function if the function is not a method and does not have a js_namespace or module attribute.
    • Using JS keywords on imports in places other than the above will no longer cause the keywords to be escaped as _{keyword}.
  • Fixed passing large arrays into Rust failing because of internal memory allocations invalidating the memory buffer.
    #​4353

  • Pass along an ignore attribute to unsupported tests.
    #​4360

  • Use OS provided temporary directory for tests instead of Cargo's target directory.
    #​4361

  • Error if URL in <WEBDRIVER>_REMOTE can't be parsed.
    #​4362

  • Internal functions are now removed instead of invalidly imported if they are unused.
    #​4366

  • Fixed no_std support for all APIs in web-sys.
    #​4378

  • Prevent generating duplicate exports for closure conversions.
    #​4380


v0.2.99

Compare Source

Released 2024-12-07

Fixed
  • Mark wasm-bindgen v0.2.98 only compatible with wasm-bindgen-cli of the same version.
    #​4331

v0.2.98

Compare Source

Released 2024-12-07

Added
  • Add support for compiling with atomics for Node.js.
    #​4318

  • Add WASM_BINDGEN_TEST_DRIVER_TIMEOUT environment variable to control the timeout to start and connect to the test driver.
    #​4320

  • Add support for number slices of type MaybeUninit<T>.
    #​4316

Changed
  • Remove once_cell/critical-section requirement for no_std with atomics.
    #​4322

  • static FOO: Option<T> now returns None if undeclared in JS instead of throwing an error in JS.
    #​4319

Fixed
  • Fix macro-hygiene for calls to std::thread_local!.
    #​4315

  • Fix feature resolver version 1 compatibility.
    #​4327


v0.2.97

Compare Source

Released 2024-11-30

Fixed
  • Fixed js-sys and wasm-bindgen-futures relying on internal paths of wasm-bindgen that are not crate feature additive.
    #​4305

v0.2.96

Compare Source

Released 2024-11-29

Added
  • Added support for the HTMLOrSVGElement mixin, which is used for all interfaces deriving from Element.
    #​4143

  • Added bindings for MathMLElement.
    #​4143

  • Added JSDoc type annotations to C-style enums.
    #​4192

  • Added support for C-style enums with negative discriminants.
    #​4204

  • Added bindings for MediaStreamTrack.getCapabilities.
    #​4236

  • Added WASM ABI support for u128 and i128
    #​4222

  • Added support for the wasm32v1-none target.
    #​4277

  • Added support for no_std to js-sys, web-sys, wasm-bindgen-futures and wasm-bindgen-test.
    #​4277

  • Added support for no_std to link_to!, static_string (via thread_local_v2) and throw.
    #​4277

  • Added environment variables to configure tests: WASM_BINDGEN_USE_BROWSER, WASM_BINDGEN_USE_DEDICATED_WORKER, WASM_BINDGEN_USE_SHARED_WORKER WASM_BINDGEN_USE_SERVICE_WORKER, WASM_BINDGEN_USE_DENO and WASM_BINDGEN_USE_NODE_EXPERIMENTAL. The use of wasm_bindgen_test_configure! will overwrite any environment variable.
    #​4295

Changed
  • String enums now generate private TypeScript types but only if used.
    #​4174

  • Remove unnecessary JSDoc type annotations from generated .d.ts files
    #​4187

  • Deprecate autofocus, tabIndex, focus() and blur() bindings in favor of bindings on the inherited Element class.
    #​4143

  • Optimized ABI performance for Option<{i32,u32,isize,usize,f32,*const T,*mut T}>.
    #​4183

  • Deprecate --reference-types in favor of automatic target feature detection.
    #​4237

  • wasm-bindgen-test-runner now tries to restart the WebDriver on failure, instead of spending its timeout period trying to connect to a non-existing WebDriver.
    #​4267

  • Deprecated #[wasm_bindgen(thread_local)] in favor of #[wasm_bindgen(thread_local_v2)], which creates a wasm_bindgen::JsThreadLocal. It is similar to std::thread::LocalKey but supports no_std.
    #​4277

  • Updated the WebGPU API to the current draft as of 2024-11-22.
    #​4290

  • Improved error messages for self arguments in invalid positions.
    #​4276

Fixed
  • Fixed methods with self: &Self consuming the object.
    #​4178

  • Fixed unused string enums generating JS values.
    #​4193

  • Fixed triggering lints in testing facilities.
    #​4195

  • Fixed #[should_panic] not working with #[wasm_bindgen_test(unsupported = ...)].
    #​4196

  • Fixed potential null error when using JsValue::as_debug_string().
    #​4192

  • Fixed generated types when the getter and setter of a property have different types.
    #​4202

  • Fixed generated types when a static getter/setter has the same name as an instance getter/setter.
    #​4202

  • Fixed invalid TypeScript return types for multivalue signatures.
    #​4210

  • Only emit table.fill instructions if the bulk-memory proposal is enabled.
    #​4237

  • Fixed calls to JsCast::instanceof() not respecting JavaScript namespaces.
    #​4241

  • Fixed imports for functions using this and late binding.
    #​4225

  • Don't expose non-functioning implicit constructors to classes when none are provided.
    #​4282


v0.2.95

Compare Source

Released 2024-10-10

Added
  • Added support for implicit discriminants in enums.
    #​4152

  • Added support for Self in complex type expressions in methods.
    #​4155

Changed
  • String enums are no longer generate TypeScript types.
    #​4174
Fixed
  • Fixed generated setters from WebIDL interface attributes binding to wrong JS method names.
    #​4170

  • Fix string enums showing up in JS documentation and TypeScript bindings without corresponding types.
    #​4175


v0.2.94

Compare Source

Released 2024-10-09

Added
  • Added support for the WebAssembly Tail Call proposal.
    #​4111

  • Add bindings for RTCPeerConnection.setConfiguration(RTCConfiguration) method.
    #​4105

  • Add bindings to RTCRtpTransceiverDirection.stopped.
    #​4102

  • Added experimental support for Symbol.dispose via WASM_BINDGEN_EXPERIMENTAL_SYMBOL_DISPOSE.
    #​4118

  • Added bindings for the draft WebRTC Encoded Transform spec.
    #​4125

  • Added Debug implementation to JsError.
    #​4136

  • Added support for js_name and skip_typescript attributes for string enums.
    #​4147

  • Added unsupported crate to wasm_bindgen_test(unsupported = test) as a way of running tests on non-Wasm targets as well.
    #​4150

  • Added additional bindings for methods taking buffer view types (e.g. &[u8]) with corresponding JS types (e.g. Uint8Array).
    #​4156

  • Added additional bindings for setters from WebIDL interface attributes with applicaple parameter types of just JsValue.
    #​4156

Changed
  • Implicitly enable reference type and multivalue transformations if the module already makes use of the corresponding target features.
    #​4133

  • Updated Gamepad API.
    #​4134

  • Deprecated Gamepad::display_id and GamepadHapticActuator::type_.
    #​4134

  • Removed GamepadAxisMoveEvent, GamepadAxisMoveEventInit, GamepadButtonEvent, GamepadButtonEventInit and GamepadServiceTest, which were seemingly never implemented by any JS environment.
    #​4134

  • Changed TextDecoder.decode() input parameter type from &mut [u8] to &[u8].
    #​4141

  • Updated the WebGPU API to the current draft as of 2024-10-07.
    #​4145

  • Deprecated generated setters from WebIDL interface attribute taking JsValue in favor of newer bindings with specific parameter types.
    #​4156

Fixed
  • Fixed linked modules emitting snippet files when not using --split-linked-modules.
    #​4066

  • Fixed incorrect deprecation warning when passing no parameter into default() (init()) or initSync().
    #​4074

  • Fixed many proc-macro generated impl blocks missing #[automatically_derived], affecting test coverage.
    #​4078

  • Fixed negative BigInt values being incorrectly formatted with two minus signs.
    #​4082
    #​4088

  • Fixed emitted package.json structure to correctly specify its dependencies
    #​4091

  • Fixed returning Option<Enum> now correctly has the | undefined type in TS bindings.
    #​4137

  • Fixed enum variant name collisions with object prototype fields.
    #​4137

  • Fixed multiline doc comment alignment and remove empty ones entirely.
    #​4135

  • Fixed experimental-nodejs-module target when used with #[wasm_bindgen(start)].
    #​4093

  • Fixed error when importing very large JS files.
    #​4146

  • Specify "type": "module" when deploying to nodejs-module
    #​4092

  • Fixed string enums not generating TypeScript types.
    #​4147

  • Bindings that take buffer view types (e.g. &[u8]) as parameters will now correctly return a Result when they might not support a backing SharedArrayBuffer. This only applies to new and unstable APIs, which won't cause a breaking in the API.
    #​4156


v0.2.93

Compare Source

Released 2024-08-13

Added
  • Allow exporting functions named default. Throw error in wasm-bindgen-cli if --target web and
    an exported symbol is named default.
    #​3930

  • Added support for arbitrary expressions when using #[wasm_bindgen(typescript_custom_section)].
    #​3901

  • Implement From<NonNull<T>> for JsValue.
    #​3877

  • Add method copy_within for TypedArray, add methods find_last,find_last_index for Array.
    #​3888

  • Added support for returning Vecs from async functions.
    #​3630

  • Added bindings for InputDeviceInfo and MediaTrackCapabilities.
    #​3935

  • Add bindings for RTCRtpReceiver.getCapabilities(DOMString) method.
    #​3941

  • Add bindings for VisualViewport.
    #​3931

  • Add bindings for queueMicrotask.
    #​3981

  • Add experimental bindings for User Agent Client Hints API
    #​3989

  • Add bindings for FocusOptions.
    #​3996

  • Add bindings for RTCRtpReceiver.jitterBufferTarget.
    #​3968

  • Generate getters for all WebIDL dictionary types.
    #​3993

  • Support for iterable in WebIDL. Gives entries, keys, values methods for regular and asynchronous, as well as for_each for regular, iterables.
    #​3962

  • Add bindings for HTMLTableCellElement.abbr and scope properties.
    #​3972

  • Add WebIDL definitions relating to Popover API.
    #​3977

  • Added the thread_stack_size property to the object parameter of default() (init()) and initSync(), making it possible to set the stack size of spawned threads. __wbindgen_thread_destroy() now has a third optional parameter for the stack size, the default stack size is assumed when not passing it. When calling from the thread to be destroyed, by passing no parameters, the correct stack size is determined internally.
    #​3995

  • Added bindings to the Device Memory API.
    #​4011

  • Added support for WebIDL records. This added new methods to various APIs, notably ClipboardItem(), GPUDeviceDescriptor.requiredLimits and Header().
    #​4030

  • Added an official MSRV policy. Library MSRV changes will be accompanied by a minor version bump. CLI tool MSRV can change with any version bump.
    #​4038

  • Added bindings to NavigatorOptions.vibrate.
    #​4041

  • Added an experimental Node.JS ES module target, in comparison the current node target uses CommonJS, with --target experimental-nodejs-module or when testing with wasm_bindgen_test_configure!(run_in_node_experimental).
    #​4027

  • Added importing strings as JsString through #[wasm_bindgen(thread_local, static_string)] static STRING: JsString = "a string literal";.
    #​4055

  • Added experimental test coverage support for wasm-bindgen-test-runner, see the guide for more information.
    #​4060

Changed
  • Stabilize Web Share API.
    #​3882

  • Generate JS bindings for WebIDL dictionary setters instead of using Reflect. This increases the size of the Web API bindings but should be more performant. Also, importing getters/setters from JS now supports specifying the JS attribute name as a string, e.g. #[wasm_bindgen(method, setter = "x-cdm-codecs")].
    #​3898

  • Greatly improve the performance of sending WebIDL 'string enums' across the JavaScript boundary by converting the enum variant string to/from an int.
    #​3915

  • Use table.fill when appropriate.
    #​3446

  • Annotated methods in WebCodecs that throw.
    #​3970

  • Update and stabilize the Clipboard API.
    #​3992

  • Deprecate builder-pattern type setters for WebIDL dictionary types and introduce non-mutable setters instead.
    #​3993

  • Allow imported async functions to return any type that can be converted from a JsValue.
    #​3919

  • Update Web Authentication API to level 3.
    #​4000

  • Deprecate AudioBufferSourceNode.onended and AudioBufferSourceNode.stop().
    #​4020

  • Increase default stack size for spawned threads from 1 to 2 MB.
    #​3995

  • Deprecated parameters to default (init) and initSync in favor of an object.
    #​3995

  • Update AbortSignal and AbortController according to the WHATWG specification.
    #​4026

  • Update the Indexed DB API.
    #​4027

  • UnwrapThrowExt for Result now makes use of the required Debug bound to display the error as well.
    #​4035
    #​4049

  • MSRV of CLI tools bumped to v1.76. This does not affect libraries like wasm-bindgen, js-sys and web-sys!
    #​4037

  • Filtered files in published crates, significantly reducing the package size and notably excluding any bash files.
    #​4046

  • Deprecated JsStatic in favor of #[wasm_bindgen(thread_local)], which creates a std::thread::LocalKey. The syntax is otherwise the same.
    #​4057

  • Removed impl Deref for JsStatic when compiling with cfg(target_feature = "atomics"), which was unsound.
    #​4057

  • Updated the WebGPU WebIDL to the current draft as of 2024-08-05.
    #​4062

  • Use object URLs for linked modules without --split-linked-modules.
    #​4067

Fixed
  • Copy port from headless test server when using WASM_BINDGEN_TEST_ADDRESS.
    #​3873

  • Fix catch not being thread-safe.
    #​3879

  • Fix MSRV compilation.
    #​3927

  • Fix clippy::empty_docs lint.
    #​3946

  • Fix missing target features in module when enabling reference types or multi-value transformation.
    #​3967

  • Fixed Rust values getting GC'd while still borrowed.
    #​3940

  • Fixed Rust values not getting GC'd if they were created via. a constructor.
    #​3940

  • Fix triggering clippy::mem_forget lint in exported structs.
    #​3985

  • Fix MDN links to static interface methods.
    #​4010

  • Fixed Deno support.
    #​3990

  • Fix __wbindgen_thread_destroy() ignoring parameters.
    #​3995

  • Fix no_std support and therefor compiling with default-features = false.
    #​4005

  • Fix byte order for big-endian platforms.
    #​4015

  • Allow ex/importing structs, functions and parameters named with raw identifiers.
    #​4025

  • Implement a more reliable way to detect the stack pointer.
    #​4036

  • #[track_caller] is now always applied on UnwrapThrowExt methods when not targeting wasm32-unknown-unknown.
    #​4042

  • Fixed linked modules emitting snippet files when not using --split-linked-modules.
    #​4066



Configuration

📅 Schedule: (in timezone Etc/GMT)

  • Branch creation
    • "after 2am and before 6am"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anyhow](https://crates.io/crates/anyhow) | dependencies | patch | `1.0.80` → `1.0.104` | | [assert_cmd](https://github.com/assert-rs/assert_cmd) | dependencies | patch | `2.0.14` → `2.0.17` | | [assert_cmd](https://github.com/assert-rs/assert_cmd) | dev-dependencies | patch | `2.0.14` → `2.0.17` | | [axoupdater](https://crates.io/crates/axoupdater) | dependencies | patch | `0.7.0` → `0.7.3` | | [cc](https://github.com/rust-lang/cc-rs) | build-dependencies | patch | `1.0.83` → `1.0.106` | | [cc](https://github.com/rust-lang/cc-rs) | build-dependencies | patch | `1.0.97` → `1.0.106` | | [chrono](https://github.com/chronotope/chrono) | dependencies | patch | `0.4.35` → `0.4.45` | | [clap](https://crates.io/crates/clap) | dependencies | patch | `4.5.2` → `4.5.61` | | [console](https://github.com/console-rs/console) | dependencies | patch | `0.15.8` → `0.15.11` | | [enum_dispatch](https://crates.io/crates/enum_dispatch) | dependencies | patch | `0.3.12` → `0.3.13` | | [flate2](https://github.com/rust-lang/flate2-rs) | dependencies | patch | `1.0.28` → `1.0.35` | | [futures](https://crates.io/crates/futures) | dependencies | patch | `0.3.30` → `0.3.33` | | [getrandom](https://crates.io/crates/getrandom) | dependencies | patch | `0.2.12` → `0.2.17` | | [ignore](https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore) ([source](https://github.com/BurntSushi/ripgrep/tree/HEAD/crates/ignore)) | dependencies | patch | `0.4.22` → `0.4.33` | | [indicatif](https://crates.io/crates/indicatif) | dependencies | patch | `0.17.8` → `0.17.11` | | [indicatif-log-bridge](https://crates.io/crates/indicatif-log-bridge) | dependencies | patch | `0.2.2` → `0.2.3` | | [log](https://crates.io/crates/log) | dependencies | patch | `0.4.21` → `0.4.33` | | [napi](https://crates.io/crates/napi) | dependencies | patch | `2.16.4` → `2.16.17` | | [napi-derive](https://crates.io/crates/napi-derive) | dependencies | patch | `2.16.3` → `2.16.13` | | [ntest](https://crates.io/crates/ntest) | dev-dependencies | patch | `0.9.1` → `0.9.5` | | [openssl](https://crates.io/crates/openssl) | dependencies | patch | `0.10.64` → `0.10.81` | | [predicates](https://github.com/assert-rs/predicates-rs) | dev-dependencies | patch | `3.1.0` → `3.1.4` | | [rand](https://rust-random.github.io/book) ([source](https://github.com/rust-random/rand)) | dependencies | patch | `0.8.5` → `0.8.7` | | [reqwest](https://crates.io/crates/reqwest) | dependencies | patch | `0.11.24` → `0.11.27` | | [reqwest](https://crates.io/crates/reqwest) | dev-dependencies | patch | `0.11.24` → `0.11.27` | | [serde](https://serde.rs) ([source](https://github.com/serde-rs/serde)) | dependencies | patch | `1.0.217` → `1.0.229` | | [serde_json](https://crates.io/crates/serde_json) | dependencies | patch | `1.0.137` → `1.0.151` | | [serde_json](https://crates.io/crates/serde_json) | dev-dependencies | patch | `1.0.137` → `1.0.151` | | [serde_yaml](https://crates.io/crates/serde_yaml) | dependencies | patch | `0.9.32` → `0.9.34` | | [sha2](https://crates.io/crates/sha2) | dependencies | patch | `0.10.8` → `0.10.9` | | [thiserror](https://crates.io/crates/thiserror) | dependencies | patch | `1.0.63` → `1.0.69` | | [tracing](https://crates.io/crates/tracing) | dependencies | patch | `0.1.41` → `0.1.44` | | [tracing-subscriber](https://crates.io/crates/tracing-subscriber) | dependencies | patch | `0.3.18` → `0.3.23` | | [tree-sitter-language](https://tree-sitter.github.io/tree-sitter) ([source](https://github.com/tree-sitter/tree-sitter)) | dependencies | patch | `0.1.2` → `0.1.7` | | [wasm-bindgen](https://wasm-bindgen.github.io/wasm-bindgen) ([source](https://github.com/wasm-bindgen/wasm-bindgen)) | dependencies | patch | `0.2.92` → `0.2.127` | | [wasm-bindgen-futures](https://wasm-bindgen.github.io/wasm-bindgen/) ([source](https://github.com/wasm-bindgen/wasm-bindgen/tree/HEAD/crates/futures)) | dependencies | patch | `0.4.42` → `0.4.77` | | [wasm-bindgen-test](https://crates.io/crates/wasm-bindgen-test) | dev-dependencies | patch | `0.3.42` → `0.3.77` | | [web-sys](https://wasm-bindgen.github.io/wasm-bindgen/web-sys/index.html) ([source](https://github.com/wasm-bindgen/wasm-bindgen/tree/HEAD/crates/web-sys)) | dependencies | patch | `0.3.69` → `0.3.104` | --- ### Release Notes <details> <summary>assert-rs/assert_cmd (assert_cmd)</summary> ### [`v2.0.17`](https://github.com/assert-rs/assert_cmd/blob/HEAD/CHANGELOG.md#2017---2025-04-16) [Compare Source](https://github.com/assert-rs/assert_cmd/compare/v2.0.16...v2.0.17) ##### Features - Add `cargo::cargo_bin!` which will work with Cargo's `build-dir` ### [`v2.0.16`](https://github.com/assert-rs/assert_cmd/blob/HEAD/CHANGELOG.md#2016---2024-08-09) [Compare Source](https://github.com/assert-rs/assert_cmd/compare/v2.0.15...v2.0.16) ##### Features - Add getters to `Command` to mirror those added to the standard library ### [`v2.0.15`](https://github.com/assert-rs/assert_cmd/blob/HEAD/CHANGELOG.md#2015---2024-07-25) [Compare Source](https://github.com/assert-rs/assert_cmd/compare/v2.0.14...v2.0.15) ##### Compatibility - MSRV is now 1.74.0 </details> <details> <summary>rust-lang/cc-rs (cc)</summary> ### [`v1.0.106`](https://github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#10106---2024-07-08) [Compare Source](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.105...cc-v1.0.106) ##### Other - Drop support for Visual Studio 12 (2013) ([#&#8203;1046](https://github.com/rust-lang/cc-rs/pull/1046)) - Use raw-dylib for windows-sys ([#&#8203;1137](https://github.com/rust-lang/cc-rs/pull/1137)) - Bump msrv to 1.67 ([#&#8203;1143](https://github.com/rust-lang/cc-rs/pull/1143)) - Bump msrv to 1.65 ([#&#8203;1140](https://github.com/rust-lang/cc-rs/pull/1140)) - Fix clippy warnings ([#&#8203;1138](https://github.com/rust-lang/cc-rs/pull/1138)) ### [`v1.0.105`](https://github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#10105---2024-07-07) [Compare Source](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.104...cc-v1.0.105) ##### Other - Regenerate windows sys bindings ([#&#8203;1132](https://github.com/rust-lang/cc-rs/pull/1132)) - Fix generate-windows-sys-bindings ([#&#8203;1133](https://github.com/rust-lang/cc-rs/pull/1133)) - Fix gen-windows-sys-binding ([#&#8203;1130](https://github.com/rust-lang/cc-rs/pull/1130)) - Fix gen-windows-sys-binding ([#&#8203;1127](https://github.com/rust-lang/cc-rs/pull/1127)) - Update windows-bindgen requirement from 0.57 to 0.58 ([#&#8203;1123](https://github.com/rust-lang/cc-rs/pull/1123)) ### [`v1.0.104`](https://github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#10104---2024-07-01) [Compare Source](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.103...cc-v1.0.104) ##### Other - Fixed link break about compile-time-requirements ([#&#8203;1118](https://github.com/rust-lang/cc-rs/pull/1118)) ### [`v1.0.103`](https://github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#10103---2024-06-30) [Compare Source](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.102...cc-v1.0.103) ##### Other - Fix compilation for wasm: env WASI\_SYSROOT should be optional ([#&#8203;1114](https://github.com/rust-lang/cc-rs/pull/1114)) ### [`v1.0.102`](https://github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#10102---2024-06-29) [Compare Source](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.101...cc-v1.0.102) ##### Other - Fix invalid wasi targets compatibility ([#&#8203;1105](https://github.com/rust-lang/cc-rs/pull/1105)) - Speedup regenerate-target-info and regenerate-windows-sys ([#&#8203;1110](https://github.com/rust-lang/cc-rs/pull/1110)) ### [`v1.0.101`](https://github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#10101---2024-06-25) [Compare Source](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.100...cc-v1.0.101) ##### Other - Use `Build::getenv` instead of `env::var*` in anywhere that makes sense ([#&#8203;1103](https://github.com/rust-lang/cc-rs/pull/1103)) ### [`v1.0.100`](https://github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#10100---2024-06-23) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.99...cc-v1.0.100) ##### Other - Update publish.yml to use release-plz ([#&#8203;1101](https://github.com/rust-lang/cc-rs/pull/1101)) - Accept `OsStr` instead of `str` for flags ([#&#8203;1100](https://github.com/rust-lang/cc-rs/pull/1100)) - Use `dep:` syntax to avoid implicit features. ([#&#8203;1099](https://github.com/rust-lang/cc-rs/pull/1099)) - Minor clippy fixes. ([#&#8203;1098](https://github.com/rust-lang/cc-rs/pull/1098)) - Fix WASI compilation for C++ ([#&#8203;1083](https://github.com/rust-lang/cc-rs/pull/1083)) - Regenerate windows sys bindings ([#&#8203;1096](https://github.com/rust-lang/cc-rs/pull/1096)) - Rename regenerate-windows-sys to regenerate-windows-sys.yml ([#&#8203;1095](https://github.com/rust-lang/cc-rs/pull/1095)) - Create regenerate-windows-sys.yml ([#&#8203;1094](https://github.com/rust-lang/cc-rs/pull/1094)) - Update windows-bindgen requirement from 0.56 to 0.57 ([#&#8203;1091](https://github.com/rust-lang/cc-rs/pull/1091)) - Eagerly close tempfile to fix [#&#8203;1082](https://github.com/rust-lang/cc-rs/pull/1082) ([#&#8203;1087](https://github.com/rust-lang/cc-rs/pull/1087)) - Output msvc.exe in the output directory ([#&#8203;1090](https://github.com/rust-lang/cc-rs/pull/1090)) - Fix clippy warnings on Windows ([#&#8203;1088](https://github.com/rust-lang/cc-rs/pull/1088)) - Don't try to free DLL on drop ([#&#8203;1089](https://github.com/rust-lang/cc-rs/pull/1089)) - Fix panic safety issue in StderrForwarder ([#&#8203;1079](https://github.com/rust-lang/cc-rs/pull/1079)) ### [`v1.0.99`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.99) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.98...1.0.99) ##### What's Changed - Allow opt-out the -ccbin flag by [@&#8203;QuarticCat](https://github.com/QuarticCat) in [#&#8203;1085](https://github.com/rust-lang/cc-rs/pull/1085) - Release cc 1.0.99 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1086](https://github.com/rust-lang/cc-rs/pull/1086) ##### New Contributors - [@&#8203;QuarticCat](https://github.com/QuarticCat) made their first contribution in [#&#8203;1085](https://github.com/rust-lang/cc-rs/pull/1085) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.98...1.0.99> ### [`v1.0.98`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.98) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.97...1.0.98) ##### What's Changed - Cleanup some deprecated, unused allows by [@&#8203;klensy](https://github.com/klensy) in [#&#8203;1067](https://github.com/rust-lang/cc-rs/pull/1067) - Fix paths on Mac Catalyst by [@&#8203;madsmtm](https://github.com/madsmtm) in [#&#8203;1070](https://github.com/rust-lang/cc-rs/pull/1070) - Fix detect\_compiler\_family.c not being created by [@&#8203;Jake-Shadle](https://github.com/Jake-Shadle) in [#&#8203;1072](https://github.com/rust-lang/cc-rs/pull/1072) - Release cc 1.0.98 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1073](https://github.com/rust-lang/cc-rs/pull/1073) ##### New Contributors - [@&#8203;klensy](https://github.com/klensy) made their first contribution in [#&#8203;1067](https://github.com/rust-lang/cc-rs/pull/1067) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.97...1.0.98> ### [`v1.0.97`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.97) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.96...1.0.97) ##### What's Changed - CI: Create regenerate-target-info by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1055](https://github.com/rust-lang/cc-rs/pull/1055) - Fix file extension for pipelime regenerate-target-info by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1056](https://github.com/rust-lang/cc-rs/pull/1056) - Fix running gen-target-info in regenerate-target-info.yml by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1057](https://github.com/rust-lang/cc-rs/pull/1057) - Fix `regenerate-target-info.yml` by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1060](https://github.com/rust-lang/cc-rs/pull/1060) - Add support for riscv32ima by [@&#8203;github-actions](https://github.com/github-actions) in [#&#8203;1061](https://github.com/rust-lang/cc-rs/pull/1061) - Fix commit message in regenerate-target-info.yml by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1062](https://github.com/rust-lang/cc-rs/pull/1062) - CI: Run cargo-semver-checks for every PR and commits to main by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1053](https://github.com/rust-lang/cc-rs/pull/1053) - fix: emscripten build on windows by [@&#8203;atty303](https://github.com/atty303) in [#&#8203;1054](https://github.com/rust-lang/cc-rs/pull/1054) - Don't use the value of SDKROOT if it doesn't match the target. by [@&#8203;jfgoog](https://github.com/jfgoog) in [#&#8203;1047](https://github.com/rust-lang/cc-rs/pull/1047) - Rm unnecessary println in try\_get\_compiler by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1063](https://github.com/rust-lang/cc-rs/pull/1063) - Bump actions/checkout from 3 to 4 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;1064](https://github.com/rust-lang/cc-rs/pull/1064) - Avoid recursive calls into try\_get\_compiler when items are in the cache by [@&#8203;dpaoliello](https://github.com/dpaoliello) in [#&#8203;1050](https://github.com/rust-lang/cc-rs/pull/1050) - Release cc 1.0.97 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1066](https://github.com/rust-lang/cc-rs/pull/1066) ##### New Contributors - [@&#8203;github-actions](https://github.com/github-actions) made their first contribution in [#&#8203;1061](https://github.com/rust-lang/cc-rs/pull/1061) - [@&#8203;atty303](https://github.com/atty303) made their first contribution in [#&#8203;1054](https://github.com/rust-lang/cc-rs/pull/1054) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.96...1.0.97> ### [`v1.0.96`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.96) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.95...1.0.96) ##### What's Changed - Use specified include directories prior to CFLAGS by [@&#8203;justsmth](https://github.com/justsmth) in [#&#8203;1043](https://github.com/rust-lang/cc-rs/pull/1043) - MSVC: Add support for linking against the "spectre-mitigated" CRT by [@&#8203;dpaoliello](https://github.com/dpaoliello) in [#&#8203;673](https://github.com/rust-lang/cc-rs/pull/673) - Release cc 1.0.96 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1045](https://github.com/rust-lang/cc-rs/pull/1045) ##### New Contributors - [@&#8203;justsmth](https://github.com/justsmth) made their first contribution in [#&#8203;1043](https://github.com/rust-lang/cc-rs/pull/1043) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.95...1.0.96> ### [`v1.0.95`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.95) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.94...1.0.95) ##### What's Changed - Update windows-bindgen requirement from 0.55 to 0.56 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;1035](https://github.com/rust-lang/cc-rs/pull/1035) - Bump msrv to 1.63 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1031](https://github.com/rust-lang/cc-rs/pull/1031) - Optimize jobserver `try_acquire` by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1037](https://github.com/rust-lang/cc-rs/pull/1037) - Release cc 1.0.95 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1038](https://github.com/rust-lang/cc-rs/pull/1038) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.94...1.0.95> ### [`v1.0.94`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.94) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.93...1.0.94) ##### What's Changed - Fix xcrun sdk version arg by [@&#8203;0123456789-jpg](https://github.com/0123456789-jpg) in [#&#8203;1007](https://github.com/rust-lang/cc-rs/pull/1007) - Release cc 1.0.94 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1034](https://github.com/rust-lang/cc-rs/pull/1034) ##### New Contributors - [@&#8203;0123456789-jpg](https://github.com/0123456789-jpg) made their first contribution in [#&#8203;1007](https://github.com/rust-lang/cc-rs/pull/1007) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.93...1.0.94> ### [`v1.0.93`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.93) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.92...1.0.93) ##### What's Changed - Add visionOS support by [@&#8203;madsmtm](https://github.com/madsmtm) in [#&#8203;1029](https://github.com/rust-lang/cc-rs/pull/1029) - Release cc-rs 1.0.93 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1032](https://github.com/rust-lang/cc-rs/pull/1032) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.92...1.0.93> ### [`v1.0.92`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.92) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.91...1.0.92) ##### What's Changed - Fix linking with llvm-lib by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1027](https://github.com/rust-lang/cc-rs/pull/1027) - Release cc 1.0.92 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1028](https://github.com/rust-lang/cc-rs/pull/1028) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.91...1.0.92> ### [`v1.0.91`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.91) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.90...1.0.91) ##### What's Changed - Update windows-bindgen requirement from 0.54 to 0.55 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;999](https://github.com/rust-lang/cc-rs/pull/999) - Fix: Accept non utf-8 characters in compiler and archiver by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;998](https://github.com/rust-lang/cc-rs/pull/998) - CI: Add automatic publish on tag creation by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;978](https://github.com/rust-lang/cc-rs/pull/978) - feat: Query rustc for clang target triples instead of hardcoding them by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1004](https://github.com/rust-lang/cc-rs/pull/1004) - Fix safety comment for LibraryHandle::get\_proc\_address by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1010](https://github.com/rust-lang/cc-rs/pull/1010) - Fix compile family detection: Use C macros instead of `$compiler -v` by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1000](https://github.com/rust-lang/cc-rs/pull/1000) - refactor: Optimize code based on cargo clippy suggestions by [@&#8203;InventiveCoder](https://github.com/InventiveCoder) in [#&#8203;1013](https://github.com/rust-lang/cc-rs/pull/1013) - Fix regression in compiler family detection by [@&#8203;russelltg](https://github.com/russelltg) in [#&#8203;1014](https://github.com/rust-lang/cc-rs/pull/1014) - Also shim llvm-ar in the clang\_android test on non-Windows by [@&#8203;dpaoliello](https://github.com/dpaoliello) in [#&#8203;1016](https://github.com/rust-lang/cc-rs/pull/1016) - Fix caching of supported compiler flag by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1002](https://github.com/rust-lang/cc-rs/pull/1002) - fix llvm-ar as archiver for msvc targets; fix clang-cl detection; fix assembler output flag detection; add clang/clang-cl windows CI by [@&#8203;russelltg](https://github.com/russelltg) in [#&#8203;1015](https://github.com/rust-lang/cc-rs/pull/1015) - fix(env\_tool): return None if env is empty by [@&#8203;cathaysia](https://github.com/cathaysia) in [#&#8203;1021](https://github.com/rust-lang/cc-rs/pull/1021) - Release cc 1.0.91 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;1024](https://github.com/rust-lang/cc-rs/pull/1024) ##### New Contributors - [@&#8203;InventiveCoder](https://github.com/InventiveCoder) made their first contribution in [#&#8203;1013](https://github.com/rust-lang/cc-rs/pull/1013) - [@&#8203;russelltg](https://github.com/russelltg) made their first contribution in [#&#8203;1014](https://github.com/rust-lang/cc-rs/pull/1014) - [@&#8203;cathaysia](https://github.com/cathaysia) made their first contribution in [#&#8203;1021](https://github.com/rust-lang/cc-rs/pull/1021) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.90...1.0.91> ### [`v1.0.90`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.90) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.89...1.0.90) ##### What's Changed - Revert "refactor target flags" by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;992](https://github.com/rust-lang/cc-rs/pull/992) - Fix regression: remove `--target` when targeting Android on non-Windows platforms by [@&#8203;dpaoliello](https://github.com/dpaoliello) in [#&#8203;991](https://github.com/rust-lang/cc-rs/pull/991) - Drop support for Visual Studio 11 (2012) by [@&#8203;dpaoliello](https://github.com/dpaoliello) in [#&#8203;981](https://github.com/rust-lang/cc-rs/pull/981) - Fix the clang targets for RISC-V Rust targets by [@&#8203;djkoloski](https://github.com/djkoloski) in [#&#8203;993](https://github.com/rust-lang/cc-rs/pull/993) - Release cc 1.0.90 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;996](https://github.com/rust-lang/cc-rs/pull/996) ##### New Contributors - [@&#8203;djkoloski](https://github.com/djkoloski) made their first contribution in [#&#8203;993](https://github.com/rust-lang/cc-rs/pull/993) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.89...1.0.90> ### [`v1.0.89`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.89) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.88...1.0.89) ##### What's Changed - refactor target flags by [@&#8203;youknowone](https://github.com/youknowone) in [#&#8203;873](https://github.com/rust-lang/cc-rs/pull/873) - Update windows-bindgen requirement from 0.53 to 0.54 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;982](https://github.com/rust-lang/cc-rs/pull/982) - Support finding Windows tools on non-Windows host by [@&#8203;cavivie](https://github.com/cavivie) in [#&#8203;907](https://github.com/rust-lang/cc-rs/pull/907) - Use llvm-ar, llvm-ranlib for Android NDK by [@&#8203;mariotaku](https://github.com/mariotaku) in [#&#8203;983](https://github.com/rust-lang/cc-rs/pull/983) - Add a public file iterator by [@&#8203;gzz2000](https://github.com/gzz2000) in [#&#8203;987](https://github.com/rust-lang/cc-rs/pull/987) - Fix make resource failure when cc parallel is enabled by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;985](https://github.com/rust-lang/cc-rs/pull/985) - Release cc 1.0.89 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;988](https://github.com/rust-lang/cc-rs/pull/988) ##### New Contributors - [@&#8203;cavivie](https://github.com/cavivie) made their first contribution in [#&#8203;907](https://github.com/rust-lang/cc-rs/pull/907) - [@&#8203;mariotaku](https://github.com/mariotaku) made their first contribution in [#&#8203;983](https://github.com/rust-lang/cc-rs/pull/983) - [@&#8203;gzz2000](https://github.com/gzz2000) made their first contribution in [#&#8203;987](https://github.com/rust-lang/cc-rs/pull/987) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.88...1.0.89> ### [`v1.0.88`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.88) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.87...1.0.88) ##### What's Changed - Add `/System/iOSSupport` to header/library search paths on Mac Catalyst by [@&#8203;madsmtm](https://github.com/madsmtm) in [#&#8203;961](https://github.com/rust-lang/cc-rs/pull/961) - Fix set\_blocking by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;975](https://github.com/rust-lang/cc-rs/pull/975) - feat: move debug logging behind a debug flag that is disabled by default by [@&#8203;amaanq](https://github.com/amaanq) in [#&#8203;972](https://github.com/rust-lang/cc-rs/pull/972) - Release cc 1.0.88 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;977](https://github.com/rust-lang/cc-rs/pull/977) ##### New Contributors - [@&#8203;madsmtm](https://github.com/madsmtm) made their first contribution in [#&#8203;961](https://github.com/rust-lang/cc-rs/pull/961) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.87...1.0.88> ### [`v1.0.87`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.87) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.86...1.0.87) ##### What's Changed - fix: remove unnecessary `println`s by [@&#8203;amaanq](https://github.com/amaanq) in [#&#8203;960](https://github.com/rust-lang/cc-rs/pull/960) - Support native ARM64 MSVC toolchain, and fallback to x64 if emulation is available by [@&#8203;dpaoliello](https://github.com/dpaoliello) in [#&#8203;957](https://github.com/rust-lang/cc-rs/pull/957) - add armv8r-none-eabihf by [@&#8203;chrisnc](https://github.com/chrisnc) in [#&#8203;836](https://github.com/rust-lang/cc-rs/pull/836) - Fix use of cc with make <4.3: Clear O\_NONBLOCK after compilaton by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;966](https://github.com/rust-lang/cc-rs/pull/966) - Release cc 1.0.87 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;967](https://github.com/rust-lang/cc-rs/pull/967) ##### New Contributors - [@&#8203;amaanq](https://github.com/amaanq) made their first contribution in [#&#8203;960](https://github.com/rust-lang/cc-rs/pull/960) - [@&#8203;chrisnc](https://github.com/chrisnc) made their first contribution in [#&#8203;836](https://github.com/rust-lang/cc-rs/pull/836) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.86...1.0.87> ### [`v1.0.86`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.86) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.85...1.0.86) ##### What's Changed - CI: Run test on aarch64-apple-darwin by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;947](https://github.com/rust-lang/cc-rs/pull/947) - Fix jobserver: Last `--jobserver-auth` wins by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;949](https://github.com/rust-lang/cc-rs/pull/949) - Fix setting O\_NONBLOCK in parallel::stderr::set\_non\_blocking by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;946](https://github.com/rust-lang/cc-rs/pull/946) - Cache compiler versions detected by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;932](https://github.com/rust-lang/cc-rs/pull/932) - Release cc 1.0.86 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;952](https://github.com/rust-lang/cc-rs/pull/952) - Fix CI (Test) nightly by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;956](https://github.com/rust-lang/cc-rs/pull/956) - Added tvos-sim support by [@&#8203;ErikEverson](https://github.com/ErikEverson) in [#&#8203;951](https://github.com/rust-lang/cc-rs/pull/951) ##### New Contributors - [@&#8203;ErikEverson](https://github.com/ErikEverson) made their first contribution in [#&#8203;951](https://github.com/rust-lang/cc-rs/pull/951) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.85...1.0.86> ### [`v1.0.85`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.85) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.84...1.0.85) > \[!IMPORTANT] > > This release has been yanked, due to panicking in freeBSD debug build. A release without these issues will be made in the near future. > > Sorry, and thanks. ##### What's Changed - fix: fix the usage of include directories for the Rust analyzer by [@&#8203;aminya](https://github.com/aminya) in [#&#8203;854](https://github.com/rust-lang/cc-rs/pull/854) - Fix Apple deployment version floor when linking C++ by [@&#8203;BlackHoleFox](https://github.com/BlackHoleFox) in [#&#8203;901](https://github.com/rust-lang/cc-rs/pull/901) - Fix unconditional cargo metadata printing on flag support check by [@&#8203;ahlinc](https://github.com/ahlinc) in [#&#8203;908](https://github.com/rust-lang/cc-rs/pull/908) - Some clippy fixes by [@&#8203;waywardmonkeys](https://github.com/waywardmonkeys) in [#&#8203;879](https://github.com/rust-lang/cc-rs/pull/879) - Add `--` for files in `try_expand` (like in [#&#8203;514](https://github.com/rust-lang/cc-rs/issues/514)) by [@&#8203;pashokitsme](https://github.com/pashokitsme) in [#&#8203;911](https://github.com/rust-lang/cc-rs/pull/911) - Link against libc++ on \*-linux-ohos by [@&#8203;DianQK](https://github.com/DianQK) in [#&#8203;915](https://github.com/rust-lang/cc-rs/pull/915) - Add support for ARM64EC when building with MSVC by [@&#8203;dpaoliello](https://github.com/dpaoliello) in [#&#8203;910](https://github.com/rust-lang/cc-rs/pull/910) - Add new compile\_intermediates function. by [@&#8203;roblabla](https://github.com/roblabla) in [#&#8203;914](https://github.com/rust-lang/cc-rs/pull/914) - Add `cargo_warnings` config to control the use of the cargo warning instruction by [@&#8203;scootermon](https://github.com/scootermon) in [#&#8203;917](https://github.com/rust-lang/cc-rs/pull/917) - Use RUSTC\_WRAPPER if no other wrapper is provided by [@&#8203;LeonMatthesKDAB](https://github.com/LeonMatthesKDAB) in [#&#8203;918](https://github.com/rust-lang/cc-rs/pull/918) - move async\_executor and job\_token modules into new parallel module by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;923](https://github.com/rust-lang/cc-rs/pull/923) - do not publish cc-test crate by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;926](https://github.com/rust-lang/cc-rs/pull/926) - move src/os\_pipe.rs to src/os\_pipe/mod.rs by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;925](https://github.com/rust-lang/cc-rs/pull/925) - add comment why tvOS CI job is separate from the matrix by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;928](https://github.com/rust-lang/cc-rs/pull/928) - move retain\_unordered\_mut function into parallel module by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;930](https://github.com/rust-lang/cc-rs/pull/930) - move cc-test & gen-windows-sys-binding into workspace by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;927](https://github.com/rust-lang/cc-rs/pull/927) - fix broken intradoc links by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;922](https://github.com/rust-lang/cc-rs/pull/922) - split miscellaneous code into a new command\_helpers module by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;931](https://github.com/rust-lang/cc-rs/pull/931) - split Tool and ToolFamily to a new tool module by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;929](https://github.com/rust-lang/cc-rs/pull/929) - do not publish tests or gcc-shim with crate by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;934](https://github.com/rust-lang/cc-rs/pull/934) - use full import path in tool module by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;933](https://github.com/rust-lang/cc-rs/pull/933) - move Windows code into a module by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;924](https://github.com/rust-lang/cc-rs/pull/924) - add comment explaining gcc-shim. by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;935](https://github.com/rust-lang/cc-rs/pull/935) - Add support for riscv32imac-esp-espidf by [@&#8203;madmo](https://github.com/madmo) in [#&#8203;939](https://github.com/rust-lang/cc-rs/pull/939) - Forward lines from stderr of child process to stdout on the same thread, instead of spawning a thread by [@&#8203;dpaoliello](https://github.com/dpaoliello) in [#&#8203;940](https://github.com/rust-lang/cc-rs/pull/940) - Fix typos. by [@&#8203;waywardmonkeys](https://github.com/waywardmonkeys) in [#&#8203;942](https://github.com/rust-lang/cc-rs/pull/942) - Fix default deployment target behavior for Apple targets by [@&#8203;BlackHoleFox](https://github.com/BlackHoleFox) in [#&#8203;943](https://github.com/rust-lang/cc-rs/pull/943) - move documentation from README.md to lib.rs by [@&#8203;Be-ing](https://github.com/Be-ing) in [#&#8203;921](https://github.com/rust-lang/cc-rs/pull/921) - Release cc 1.0.85 by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;944](https://github.com/rust-lang/cc-rs/pull/944) ##### New Contributors - [@&#8203;aminya](https://github.com/aminya) made their first contribution in [#&#8203;854](https://github.com/rust-lang/cc-rs/pull/854) - [@&#8203;ahlinc](https://github.com/ahlinc) made their first contribution in [#&#8203;908](https://github.com/rust-lang/cc-rs/pull/908) - [@&#8203;pashokitsme](https://github.com/pashokitsme) made their first contribution in [#&#8203;911](https://github.com/rust-lang/cc-rs/pull/911) - [@&#8203;DianQK](https://github.com/DianQK) made their first contribution in [#&#8203;915](https://github.com/rust-lang/cc-rs/pull/915) - [@&#8203;dpaoliello](https://github.com/dpaoliello) made their first contribution in [#&#8203;910](https://github.com/rust-lang/cc-rs/pull/910) - [@&#8203;scootermon](https://github.com/scootermon) made their first contribution in [#&#8203;917](https://github.com/rust-lang/cc-rs/pull/917) - [@&#8203;LeonMatthesKDAB](https://github.com/LeonMatthesKDAB) made their first contribution in [#&#8203;918](https://github.com/rust-lang/cc-rs/pull/918) - [@&#8203;Be-ing](https://github.com/Be-ing) made their first contribution in [#&#8203;923](https://github.com/rust-lang/cc-rs/pull/923) - [@&#8203;madmo](https://github.com/madmo) made their first contribution in [#&#8203;939](https://github.com/rust-lang/cc-rs/pull/939) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.84...1.0.85> ### [`v1.0.84`](https://github.com/rust-lang/cc-rs/releases/tag/1.0.84) [Compare Source](https://github.com/rust-lang/cc-rs/compare/1.0.83...1.0.84) > \[!IMPORTANT] > > This release has been yanked, due to the Apple deployment target changes causing unintentional widespread breakage for building C++ code on the target (for projects without an explicit deployment target set). A release without these issues will be made in the near future. > > Sorry, and thanks. ##### Changes This isn't a complete list, but I've tried to cover everything that is either significant, or could cause problems for people using `cc` in configurations not covered by our tests. - The MSRV has been updated to 1.53.0 ([#&#8203;894](https://github.com/rust-lang/cc-rs/pull/894)) - A completely overhauled implementation of the jobserver protocol (used under `feature = parallel`), which should be more efficient. ([#&#8203;889](https://github.com/rust-lang/cc-rs/pull/889)). - Better handling of assemblers on windows targets, especially `armasm[64].exe` ([#&#8203;867](https://github.com/rust-lang/cc-rs/pull/867), [#&#8203;868](https://github.com/rust-lang/cc-rs/pull/868), [#&#8203;869](https://github.com/rust-lang/cc-rs/pull/869), [#&#8203;857](https://github.com/rust-lang/cc-rs/pull/857)) - A few fixes for incorrect results from `is_flag_supported` ([#&#8203;839](https://github.com/rust-lang/cc-rs/pull/839), [#&#8203;886](https://github.com/rust-lang/cc-rs/pull/886)) - Support for the `*-apple-tvos` and `*-apple-tvos-sim` targets ([#&#8203;881](https://github.com/rust-lang/cc-rs/pull/881), [#&#8203;704](https://github.com/rust-lang/cc-rs/pull/704)) - Improved handling of the deployment target on Apple targets, including use of `rustc --print deployment-target` when available ([#&#8203;848](https://github.com/rust-lang/cc-rs/pull/848), [#&#8203;872](https://github.com/rust-lang/cc-rs/pull/872)) - We no longer bundle bitcode when compiling for Apple targets, as they've deprecated it ([#&#8203;812](https://github.com/rust-lang/cc-rs/pull/812)) - A new `remove_flag` function to remove flags which have been added with `add_flag` ([#&#8203;885](https://github.com/rust-lang/cc-rs/pull/885)) - Changes to how clang and gcc are distinguished, and how `-m32`/`-mx32`/`-m64` flags are passed ([#&#8203;709](https://github.com/rust-lang/cc-rs/pull/709)) - Minor adjustments to how `-isysroot` is passed on Apple targets ([#&#8203;703](https://github.com/rust-lang/cc-rs/pull/703)) and how MSVC version is detected on Windows ([#&#8203;696](https://github.com/rust-lang/cc-rs/pull/696)). As always, please file bugs if you hit issues. `cc` is used in many more ways than we can possibly test (especially when cross-compiling or using tier-3 platforms). Thanks. ##### New Contributors - [@&#8203;BlackHoleFox](https://github.com/BlackHoleFox) made their first contribution in [#&#8203;848](https://github.com/rust-lang/cc-rs/pull/848) - [@&#8203;youknowone](https://github.com/youknowone) made their first contribution in [#&#8203;704](https://github.com/rust-lang/cc-rs/pull/704) - [@&#8203;Arc-blroth](https://github.com/Arc-blroth) made their first contribution in [#&#8203;705](https://github.com/rust-lang/cc-rs/pull/705) - [@&#8203;osiewicz](https://github.com/osiewicz) made their first contribution in [#&#8203;878](https://github.com/rust-lang/cc-rs/pull/878) - [@&#8203;RubixDev](https://github.com/RubixDev) made their first contribution in [#&#8203;839](https://github.com/rust-lang/cc-rs/pull/839) - [@&#8203;lcruz99](https://github.com/lcruz99) made their first contribution in [#&#8203;881](https://github.com/rust-lang/cc-rs/pull/881) - [@&#8203;raisfeld-ori](https://github.com/raisfeld-ori) made their first contribution in [#&#8203;885](https://github.com/rust-lang/cc-rs/pull/885) **Full Changelog**: <https://github.com/rust-lang/cc-rs/compare/1.0.83...1.0.84> </details> <details> <summary>chronotope/chrono (chrono)</summary> ### [`v0.4.45`](https://github.com/chronotope/chrono/releases/tag/v0.4.45): 0.4.45 [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.44...v0.4.45) ##### What's Changed - fix(tz): reject TZ offset hour of 24 to avoid FixedOffset overflow by [@&#8203;SAY-5](https://github.com/SAY-5) in [#&#8203;1787](https://github.com/chronotope/chrono/pull/1787) - tz\_data: fix tzdata locations on Android by [@&#8203;caruschalalamove](https://github.com/caruschalalamove) in [#&#8203;1789](https://github.com/chronotope/chrono/pull/1789) ### [`v0.4.44`](https://github.com/chronotope/chrono/releases/tag/v0.4.44): 0.4.44 [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.43...v0.4.44) ##### What's Changed - docs: match MSRV with `Cargo.toml` contents by [@&#8203;coryan](https://github.com/coryan) in [#&#8203;1772](https://github.com/chronotope/chrono/pull/1772) - Add track\_caller to non-deprecated functions by [@&#8203;svix-jplatte](https://github.com/svix-jplatte) in [#&#8203;1774](https://github.com/chronotope/chrono/pull/1774) ### [`v0.4.43`](https://github.com/chronotope/chrono/releases/tag/v0.4.43): 0.4.43 [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.42...v0.4.43) ##### What's Changed - Install extra components for lint workflow by [@&#8203;djc](https://github.com/djc) in [#&#8203;1741](https://github.com/chronotope/chrono/pull/1741) - Upgrade windows-bindgen to 0.64 by [@&#8203;djc](https://github.com/djc) in [#&#8203;1742](https://github.com/chronotope/chrono/pull/1742) - Improve windows-bindgen setup by [@&#8203;djc](https://github.com/djc) in [#&#8203;1744](https://github.com/chronotope/chrono/pull/1744) - Drop stabilized feature doc\_auto\_cfg by [@&#8203;djc](https://github.com/djc) in [#&#8203;1745](https://github.com/chronotope/chrono/pull/1745) - Faster RFC 3339 parsing by [@&#8203;djc](https://github.com/djc) in [#&#8203;1748](https://github.com/chronotope/chrono/pull/1748) - Update windows-bindgen requirement from 0.64 to 0.65 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1751](https://github.com/chronotope/chrono/pull/1751) - add `NaiveDate::abs_diff` by [@&#8203;Kinrany](https://github.com/Kinrany) in [#&#8203;1752](https://github.com/chronotope/chrono/pull/1752) - Add feature gated defmt support. by [@&#8203;pebender](https://github.com/pebender) in [#&#8203;1747](https://github.com/chronotope/chrono/pull/1747) - Drop deny lints, eager Debug impls are a mixed blessing by [@&#8203;djc](https://github.com/djc) in [#&#8203;1753](https://github.com/chronotope/chrono/pull/1753) - chore: minor improvement for docs by [@&#8203;spuradage](https://github.com/spuradage) in [#&#8203;1756](https://github.com/chronotope/chrono/pull/1756) - Added doctest for the NaiveDate years\_since function by [@&#8203;LucasBou](https://github.com/LucasBou) in [#&#8203;1755](https://github.com/chronotope/chrono/pull/1755) - Prepare 0.4.43 by [@&#8203;djc](https://github.com/djc) in [#&#8203;1765](https://github.com/chronotope/chrono/pull/1765) - Update copyright year to 2026 in LICENSE.txt by [@&#8203;taozui472](https://github.com/taozui472) in [#&#8203;1767](https://github.com/chronotope/chrono/pull/1767) ### [`v0.4.42`](https://github.com/chronotope/chrono/releases/tag/v0.4.42): 0.4.42 [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.41...v0.4.42) ##### What's Changed - Add fuzzer for DateTime::parse\_from\_str by [@&#8203;tyler92](https://github.com/tyler92) in [#&#8203;1700](https://github.com/chronotope/chrono/pull/1700) - Fix wrong amount of micro/milliseconds by [@&#8203;nmlt](https://github.com/nmlt) in [#&#8203;1703](https://github.com/chronotope/chrono/pull/1703) - Add warning about MappedLocalTime and wasm by [@&#8203;lutzky](https://github.com/lutzky) in [#&#8203;1702](https://github.com/chronotope/chrono/pull/1702) - Fix incorrect parsing of fixed-length second fractions by [@&#8203;chris-leach](https://github.com/chris-leach) in [#&#8203;1705](https://github.com/chronotope/chrono/pull/1705) - Fix cfgs for `wasm32-linux` support by [@&#8203;arjunr2](https://github.com/arjunr2) in [#&#8203;1707](https://github.com/chronotope/chrono/pull/1707) - Fix OpenHarmony's `tzdata` parsing by [@&#8203;ldm0](https://github.com/ldm0) in [#&#8203;1679](https://github.com/chronotope/chrono/pull/1679) - Convert NaiveDate to/from days since unix epoch by [@&#8203;findepi](https://github.com/findepi) in [#&#8203;1715](https://github.com/chronotope/chrono/pull/1715) - Add `?Sized` bound to related methods of `DelayedFormat::write_to` by [@&#8203;Huliiiiii](https://github.com/Huliiiiii) in [#&#8203;1721](https://github.com/chronotope/chrono/pull/1721) - Add `from_timestamp_secs` method to `DateTime` by [@&#8203;jasonaowen](https://github.com/jasonaowen) in [#&#8203;1719](https://github.com/chronotope/chrono/pull/1719) - Migrate to core::error::Error by [@&#8203;benbrittain](https://github.com/benbrittain) in [#&#8203;1704](https://github.com/chronotope/chrono/pull/1704) - Upgrade to windows-bindgen 0.63 by [@&#8203;djc](https://github.com/djc) in [#&#8203;1730](https://github.com/chronotope/chrono/pull/1730) - strftime: simplify error handling by [@&#8203;djc](https://github.com/djc) in [#&#8203;1731](https://github.com/chronotope/chrono/pull/1731) ### [`v0.4.41`](https://github.com/chronotope/chrono/releases/tag/v0.4.41) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.40...v0.4.41) ##### What's Changed - Add `subsec_micros` and `subsec_millis` methods to `TimeDelta` by [@&#8203;ggoetz](https://github.com/ggoetz) in [#&#8203;1668](https://github.com/chronotope/chrono/pull/1668) - Deprecate `NaiveDateTime::UNIX_EPOCH` by [@&#8203;robertbastian](https://github.com/robertbastian) in [#&#8203;1670](https://github.com/chronotope/chrono/pull/1670) - Implement `as_seconds_f32` and `as_seconds_f64` for `TimeDelta` by [@&#8203;ggoetz](https://github.com/ggoetz) in [#&#8203;1671](https://github.com/chronotope/chrono/pull/1671) - chore: fix some comments by [@&#8203;jimmycathy](https://github.com/jimmycathy) in [#&#8203;1677](https://github.com/chronotope/chrono/pull/1677) - Add `num_days_in_month` method to `Datelike` trait by [@&#8203;aslilac](https://github.com/aslilac) in [#&#8203;1673](https://github.com/chronotope/chrono/pull/1673) - add `WeekdaySet`, a collection of `Weekday` that is `Copy` by [@&#8203;Kinrany](https://github.com/Kinrany) in [#&#8203;1676](https://github.com/chronotope/chrono/pull/1676) - WeekdaySet tweaks by [@&#8203;djc](https://github.com/djc) in [#&#8203;1680](https://github.com/chronotope/chrono/pull/1680) - Upgrade to windows-bindgen 0.61 by [@&#8203;djc](https://github.com/djc) in [#&#8203;1682](https://github.com/chronotope/chrono/pull/1682) - Implemented a consistent Eq trait for NaiveWeek by [@&#8203;Splashling1789](https://github.com/Splashling1789) in [#&#8203;1687](https://github.com/chronotope/chrono/pull/1687) - TimeZone::from\_posix\_tz: Treat empty TZ variable as UTC by [@&#8203;drinkcat](https://github.com/drinkcat) in [#&#8203;1691](https://github.com/chronotope/chrono/pull/1691) - Add support for lossy format strings by [@&#8203;Qelxiros](https://github.com/Qelxiros) in [#&#8203;1693](https://github.com/chronotope/chrono/pull/1693) ### [`v0.4.40`](https://github.com/chronotope/chrono/releases/tag/v0.4.40): 0.4.40 [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.39...v0.4.40) ##### What's Changed - Add Month::num\_days() by [@&#8203;djc](https://github.com/djc) in [#&#8203;1645](https://github.com/chronotope/chrono/pull/1645) - Update Windows dependencies by [@&#8203;kennykerr](https://github.com/kennykerr) in [#&#8203;1646](https://github.com/chronotope/chrono/pull/1646) - Feature/round\_up method on DurationRound trait by [@&#8203;MagnumTrader](https://github.com/MagnumTrader) in [#&#8203;1651](https://github.com/chronotope/chrono/pull/1651) - Expose `write_to` for `DelayedFormat` by [@&#8203;tugtugtug](https://github.com/tugtugtug) in [#&#8203;1654](https://github.com/chronotope/chrono/pull/1654) - Update LICENSE.txt by [@&#8203;maximevtush](https://github.com/maximevtush) in [#&#8203;1656](https://github.com/chronotope/chrono/pull/1656) - docs: fix minor typo by [@&#8203;samfolo](https://github.com/samfolo) in [#&#8203;1659](https://github.com/chronotope/chrono/pull/1659) - Use NaiveDateTime for internal tz\_info methods. by [@&#8203;AVee](https://github.com/AVee) in [#&#8203;1658](https://github.com/chronotope/chrono/pull/1658) - Upgrade to windows-bindgen 0.60 by [@&#8203;djc](https://github.com/djc) in [#&#8203;1665](https://github.com/chronotope/chrono/pull/1665) - Add quarter (%q) date string specifier by [@&#8203;drinkcat](https://github.com/drinkcat) in [#&#8203;1666](https://github.com/chronotope/chrono/pull/1666) ### [`v0.4.39`](https://github.com/chronotope/chrono/releases/tag/v0.4.39): 0.4.39 [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.38...v0.4.39) ##### What's Changed - [#&#8203;1577](https://github.com/chronotope/chrono/issues/1577): Changed years\_since documentation to match its implementation by [@&#8203;Taxalo](https://github.com/Taxalo) in [#&#8203;1578](https://github.com/chronotope/chrono/pull/1578) - Remove obsolete weird feature guard by [@&#8203;djc](https://github.com/djc) in [#&#8203;1582](https://github.com/chronotope/chrono/pull/1582) - Fix format::strftime docs link by [@&#8203;frederikhors](https://github.com/frederikhors) in [#&#8203;1581](https://github.com/chronotope/chrono/pull/1581) - Fix micros (optional) limit in and\_hms\_micro\_opt by [@&#8203;qrilka](https://github.com/qrilka) in [#&#8203;1584](https://github.com/chronotope/chrono/pull/1584) - Update windows-bindgen requirement from 0.56 to 0.57 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;1589](https://github.com/chronotope/chrono/pull/1589) - native/date: Improve DelayedFormat doc re Panics by [@&#8203;behnam-oneschema](https://github.com/behnam-oneschema) in [#&#8203;1590](https://github.com/chronotope/chrono/pull/1590) - Fix typo in rustdoc of `from_timestamp_nanos()` by [@&#8203;sgoll](https://github.com/sgoll) in [#&#8203;1591](https://github.com/chronotope/chrono/pull/1591) - Update windows-bindgen requirement from 0.57 to 0.58 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;1594](https://github.com/chronotope/chrono/pull/1594) - docs: document century cutoff for %y by [@&#8203;MarcoGorelli](https://github.com/MarcoGorelli) in [#&#8203;1598](https://github.com/chronotope/chrono/pull/1598) - Checked `NaiveWeek` methods by [@&#8203;bragov4ik](https://github.com/bragov4ik) in [#&#8203;1600](https://github.com/chronotope/chrono/pull/1600) - Impl serde::Serialize and serde::Deserialize for TimeDelta by [@&#8203;Awpteamoose](https://github.com/Awpteamoose) in [#&#8203;1599](https://github.com/chronotope/chrono/pull/1599) - Derive `PartialEq`,`Eq`,`Hash`,`Copy` and `Clone` on `NaiveWeek` by [@&#8203;DSeeLP](https://github.com/DSeeLP) in [#&#8203;1618](https://github.com/chronotope/chrono/pull/1618) - Support ohos tzdata since ver.oh35 by [@&#8203;MirageLyu](https://github.com/MirageLyu) in [#&#8203;1613](https://github.com/chronotope/chrono/pull/1613) - Use Formatter::pad (instead of write\_str) for Weekdays by [@&#8203;horazont](https://github.com/horazont) in [#&#8203;1621](https://github.com/chronotope/chrono/pull/1621) - Fix typos by [@&#8203;szepeviktor](https://github.com/szepeviktor) in [#&#8203;1623](https://github.com/chronotope/chrono/pull/1623) - Fix comment. by [@&#8203;khuey](https://github.com/khuey) in [#&#8203;1624](https://github.com/chronotope/chrono/pull/1624) - chore: add `#[inline]` to `num_days` by [@&#8203;CommanderStorm](https://github.com/CommanderStorm) in [#&#8203;1627](https://github.com/chronotope/chrono/pull/1627) - fix typo by [@&#8203;futreall](https://github.com/futreall) in [#&#8203;1633](https://github.com/chronotope/chrono/pull/1633) - Update mod.rs by [@&#8203;donatik27](https://github.com/donatik27) in [#&#8203;1638](https://github.com/chronotope/chrono/pull/1638) ### [`v0.4.38`](https://github.com/chronotope/chrono/releases/tag/v0.4.38) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.37...v0.4.38) This release bring a ca. 20% improvement to the performance of the formatting code, and a convenient `days_since` method for the `Weekday` type. Chrono 0.4.38 also removes the long deprecated `rustc-serialize` feature. Support for `rustc-serialize` will be [soft-destabilized in the next Rust edition](https://github.com/rust-lang/rust/pull/116016). Removing the feature will not break existing users of the feature; Cargo will just not update dependents that rely on it to newer versions of chrono. In chrono 0.4.36 we made an accidental breaking change by switching to `derive(Copy)` for `DateTime` instead of a manual implementation. It is reverted in this release. ##### Removals - Remove `rustc-serialize` feature ([#&#8203;1548](https://github.com/chronotope/chrono/issues/1548), thanks [@&#8203;workingjubilee](https://github.com/workingjubilee)) ##### Additions - Add `Weekday::days_since` ([#&#8203;1249](https://github.com/chronotope/chrono/issues/1249), based on [#&#8203;216](https://github.com/chronotope/chrono/issues/216) by [@&#8203;clarfonthey](https://github.com/clarfonthey)) - Add `TimeDelta::checked_mul` and `TimeDelta::checked_div` ([#&#8203;1565](https://github.com/chronotope/chrono/issues/1565), thanks [@&#8203;Zomtir](https://github.com/Zomtir)) ##### Fixes - Return error when rounding with a zero duration ([#&#8203;1474](https://github.com/chronotope/chrono/issues/1474), thanks [@&#8203;Dav1dde](https://github.com/Dav1dde)) - Manually implement `Copy` for `DateTime` if offset is `Copy` ([#&#8203;1573](https://github.com/chronotope/chrono/issues/1573)) ##### Internal - Inline `test_encodable_json` and `test_decodable_json` functions ([#&#8203;1550](https://github.com/chronotope/chrono/issues/1550)) - CI: Reduce combinations in `cargo hack check` ([#&#8203;1553](https://github.com/chronotope/chrono/issues/1553)) - Refactor formatting code ([#&#8203;1335](https://github.com/chronotope/chrono/issues/1335)) - Optimize number formatting ([#&#8203;1558](https://github.com/chronotope/chrono/issues/1558)) - Only package files needed for building and testing ([#&#8203;1554](https://github.com/chronotope/chrono/issues/1554)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.37`](https://github.com/chronotope/chrono/releases/tag/v0.4.37) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.36...v0.4.37) Version 0.4.36 introduced an unexpected breaking change and was yanked. In it `LocalResult` was renamed to `MappedLocalTime` to avoid the impression that it is a `Result` type were some of the results are errors. For backwards compatibility a type alias with the old name was added. As it turns out there is one case where a type alias behaves differently from the regular enum: you can't import enum variants from a type alias with `use chrono::LocalResult::*`. With 0.4.37 we make the new name `MappedLocalTime` the alias, but keep using it in function signatures and the documentation as much as possible. See also the release notes of [chrono 0.4.36](https://github.com/chronotope/chrono/releases/tag/v0.4.36) from yesterday for the yanked release. ### [`v0.4.36`](https://github.com/chronotope/chrono/releases/tag/v0.4.36) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.35...v0.4.36) This release un-deprecates the methods on `TimeDelta` that were deprecated with the 0.4.35 release because of the churn they are causing for the ecosystem. New is the `DateTime::with_time()` method. As an example of when it is useful: ```rust use chrono::{Local, NaiveTime}; // Today at 12:00:00 let today_noon = Local::now().with_time(NaiveTime::from_hms_opt(12, 0, 0).unwrap()); ``` ##### Additions - Add `DateTime::with_time()` ([#&#8203;1510](https://github.com/chronotope/chrono/issues/1510)) ##### Deprecations - Revert `TimeDelta` deprecations ([#&#8203;1543](https://github.com/chronotope/chrono/issues/1543)) - Deprecate `TimeStamp::timestamp_subsec_nanos`, which was missed in the 0.4.35 release ([#&#8203;1486](https://github.com/chronotope/chrono/issues/1486)) ##### Documentation - Correct version number of deprecation notices ([#&#8203;1486](https://github.com/chronotope/chrono/issues/1486)) - Fix some typos ([#&#8203;1505](https://github.com/chronotope/chrono/issues/1505)) - Slightly improve serde documentation ([#&#8203;1519](https://github.com/chronotope/chrono/issues/1519)) - Main documentation: simplify links and reflow text ([#&#8203;1535](https://github.com/chronotope/chrono/issues/1535)) ##### Internal - CI: Lint benchmarks ([#&#8203;1489](https://github.com/chronotope/chrono/issues/1489)) - Remove unnessary `Copy` and `Send` impls ([#&#8203;1492](https://github.com/chronotope/chrono/issues/1492), thanks [@&#8203;erickt](https://github.com/erickt)) - Backport streamlined `NaiveDate` unit tests ([#&#8203;1500](https://github.com/chronotope/chrono/issues/1500), thanks [@&#8203;Zomtir](https://github.com/Zomtir)) - Rename `LocalResult` to `TzResolution`, add alias ([#&#8203;1501](https://github.com/chronotope/chrono/issues/1501)) - Update windows-bindgen to 0.55 ([#&#8203;1504](https://github.com/chronotope/chrono/issues/1504)) - Avoid duplicate imports, which generate warnings on nightly ([#&#8203;1507](https://github.com/chronotope/chrono/issues/1507)) - Add extra debug assertions to `NaiveDate::from_yof` ([#&#8203;1518](https://github.com/chronotope/chrono/issues/1518)) - Some small simplifications to `DateTime::date_naive` and `NaiveDate::diff_months` ([#&#8203;1530](https://github.com/chronotope/chrono/issues/1530)) - Remove `unwrap` in Unix `Local` type ([#&#8203;1533](https://github.com/chronotope/chrono/issues/1533)) - Use different method to ignore feature-dependent doctests ([#&#8203;1534](https://github.com/chronotope/chrono/issues/1534)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! </details> <details> <summary>console-rs/console (console)</summary> ### [`v0.15.11`](https://github.com/console-rs/console/releases/tag/0.15.11) [Compare Source](https://github.com/console-rs/console/compare/0.15.10...0.15.11) #### What's Changed - Don't eagerly close tty fd in read\_secure by [@&#8203;Noratrieb](https://github.com/Noratrieb) in [#&#8203;222](https://github.com/console-rs/console/pull/222) - Make functions on Style const by [@&#8203;tamird](https://github.com/tamird) in [#&#8203;220](https://github.com/console-rs/console/pull/220) - Fix some typos by [@&#8203;waywardmonkeys](https://github.com/waywardmonkeys) in [#&#8203;213](https://github.com/console-rs/console/pull/213) - Improve type safety, extract identical code by [@&#8203;tamird](https://github.com/tamird) in [#&#8203;223](https://github.com/console-rs/console/pull/223) - Unix tweaks by [@&#8203;djc](https://github.com/djc) in [#&#8203;230](https://github.com/console-rs/console/pull/230) - Fix WASI target name by [@&#8203;djc](https://github.com/djc) in [#&#8203;236](https://github.com/console-rs/console/pull/236) - Simplify & update by [@&#8203;djc](https://github.com/djc) in [#&#8203;237](https://github.com/console-rs/console/pull/237) - fix: 🐛 remove double-width characters correctly by [@&#8203;bestgopher](https://github.com/bestgopher) in [#&#8203;234](https://github.com/console-rs/console/pull/234) - Explicitly handle CtrlC on Windows by [@&#8203;ericmarkmartin](https://github.com/ericmarkmartin) in [#&#8203;235](https://github.com/console-rs/console/pull/235) - Windows mode tweaks by [@&#8203;djc](https://github.com/djc) in [#&#8203;239](https://github.com/console-rs/console/pull/239) ### [`v0.15.10`](https://github.com/console-rs/console/releases/tag/0.15.10) [Compare Source](https://github.com/console-rs/console/compare/0.15.9...0.15.10) #### What's Changed - Remove MSRV badge from README by [@&#8203;djc](https://github.com/djc) in [#&#8203;228](https://github.com/console-rs/console/pull/228) ### [`v0.15.9`](https://github.com/console-rs/console/releases/tag/0.15.9) [Compare Source](https://github.com/console-rs/console/compare/0.15.8...0.15.9) #### What's Changed - Update dependencies by [@&#8203;djc](https://github.com/djc) in [#&#8203;227](https://github.com/console-rs/console/pull/227) </details> <details> <summary>rust-lang/flate2-rs (flate2)</summary> ### [`v1.0.35`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.35): - security update to zlib-rs [Compare Source](https://github.com/rust-lang/flate2-rs/compare/1.0.34...1.0.35) #### What's Changed - Upgrade actions/upload-artifact by [@&#8203;jdno](https://github.com/jdno) in [#&#8203;438](https://github.com/rust-lang/flate2-rs/pull/438) - upgrade zlib-rs to version `0.4.0` by [@&#8203;folkertdev](https://github.com/folkertdev) in [#&#8203;439](https://github.com/rust-lang/flate2-rs/pull/439) #### New Contributors - [@&#8203;jdno](https://github.com/jdno) made their first contribution in [#&#8203;438](https://github.com/rust-lang/flate2-rs/pull/438) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.0.34...1.0.35> ### [`v1.0.34`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.34) [Compare Source](https://github.com/rust-lang/flate2-rs/compare/1.0.33...1.0.34) #### What's Changed - Add minimum build test back in to CI by [@&#8203;jongiddy](https://github.com/jongiddy) in [#&#8203;426](https://github.com/rust-lang/flate2-rs/pull/426) - docs: fix compression level range from 0-9 to 0-10 by [@&#8203;ByteBaker](https://github.com/ByteBaker) in [#&#8203;427](https://github.com/rust-lang/flate2-rs/pull/427) - Document backend differences in compression levels by [@&#8203;Shnatsel](https://github.com/Shnatsel) in [#&#8203;430](https://github.com/rust-lang/flate2-rs/pull/430) - Upgrade zlib-rs to 0.3.0 to get multiple bugfixes by [@&#8203;Shnatsel](https://github.com/Shnatsel) in [#&#8203;428](https://github.com/rust-lang/flate2-rs/pull/428) - Better wording in compression level docs by [@&#8203;Shnatsel](https://github.com/Shnatsel) in [#&#8203;431](https://github.com/rust-lang/flate2-rs/pull/431) #### New Contributors - [@&#8203;ByteBaker](https://github.com/ByteBaker) made their first contribution in [#&#8203;427](https://github.com/rust-lang/flate2-rs/pull/427) - [@&#8203;Shnatsel](https://github.com/Shnatsel) made their first contribution in [#&#8203;430](https://github.com/rust-lang/flate2-rs/pull/430) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.0.33...1.0.34> ### [`v1.0.33`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.33): - fix minimal manifest versions [Compare Source](https://github.com/rust-lang/flate2-rs/compare/1.0.32...1.0.33) #### What's Changed - Fix msrv: Run msrv checks with minimal versions by [@&#8203;NobodyXu](https://github.com/NobodyXu) in [#&#8203;425](https://github.com/rust-lang/flate2-rs/pull/425) #### New Contributors - [@&#8203;NobodyXu](https://github.com/NobodyXu) made their first contribution in [#&#8203;425](https://github.com/rust-lang/flate2-rs/pull/425) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.0.32...1.0.33> ### [`v1.0.32`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.32): - turn panic into error [Compare Source](https://github.com/rust-lang/flate2-rs/compare/1.0.31...1.0.32) #### What's Changed ##### Fix - Return error instead of packing on Z\_MEM\_ERROR by [@&#8203;crazymerlyn](https://github.com/crazymerlyn) in [#&#8203;423](https://github.com/rust-lang/flate2-rs/pull/423) ##### Other - prepare new release by [@&#8203;Byron](https://github.com/Byron) in [#&#8203;416](https://github.com/rust-lang/flate2-rs/pull/416) - update miniz\_oxide dependency to 0.8.x by [@&#8203;oyvindln](https://github.com/oyvindln) in [#&#8203;420](https://github.com/rust-lang/flate2-rs/pull/420) - update maintenance guide with recent news by [@&#8203;Byron](https://github.com/Byron) in [#&#8203;419](https://github.com/rust-lang/flate2-rs/pull/419) - Check minimal version of Rust that compiles by [@&#8203;jongiddy](https://github.com/jongiddy) in [#&#8203;421](https://github.com/rust-lang/flate2-rs/pull/421) - Remove non-existent build in CI by [@&#8203;jongiddy](https://github.com/jongiddy) in [#&#8203;422](https://github.com/rust-lang/flate2-rs/pull/422) #### New Contributors - [@&#8203;crazymerlyn](https://github.com/crazymerlyn) made their first contribution in [#&#8203;423](https://github.com/rust-lang/flate2-rs/pull/423) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.0.31...1.0.32> ### [`v1.0.31`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.31) [Compare Source](https://github.com/rust-lang/flate2-rs/compare/1.0.30...1.0.31) #### What's Changed - docs: Document expected behavior when Read is done for ZLIB and DEFLATE decoders by [@&#8203;marxin](https://github.com/marxin) in [#&#8203;408](https://github.com/rust-lang/flate2-rs/pull/408) - Remove duplicate word in top-most doc by [@&#8203;yestyle](https://github.com/yestyle) in [#&#8203;414](https://github.com/rust-lang/flate2-rs/pull/414) - release version 1.0.31: bump libz-rs-sys version by [@&#8203;folkertdev](https://github.com/folkertdev) in [#&#8203;415](https://github.com/rust-lang/flate2-rs/pull/415) #### New Contributors - [@&#8203;marxin](https://github.com/marxin) made their first contribution in [#&#8203;408](https://github.com/rust-lang/flate2-rs/pull/408) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.0.30...1.0.31> ### [`v1.0.30`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.30): - docs.rs pages should build again [Compare Source](https://github.com/rust-lang/flate2-rs/compare/1.0.29...1.0.30) #### What's Changed - Fix typos by [@&#8203;striezel](https://github.com/striezel) in [#&#8203;406](https://github.com/rust-lang/flate2-rs/pull/406) - Update actions/checkout in GitHub Actions workflows to v4 by [@&#8203;striezel](https://github.com/striezel) in [#&#8203;407](https://github.com/rust-lang/flate2-rs/pull/407) - fix CI - `--all-features` wasn't tested and didn't work with arrival of `zlib-rs` by [@&#8203;Byron](https://github.com/Byron) in [#&#8203;405](https://github.com/rust-lang/flate2-rs/pull/405) #### New Contributors - [@&#8203;striezel](https://github.com/striezel) made their first contribution in [#&#8203;406](https://github.com/rust-lang/flate2-rs/pull/406) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.0.29...1.0.30> ### [`v1.0.29`](https://github.com/rust-lang/flate2-rs/releases/tag/1.0.29): - with new `zlib-rs` feature (~`zlib-ng` in Rust) [Compare Source](https://github.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29) With the [new `zlib-rs`](https://github.com/memorysafety/zlib-rs) feature, a new backend is enabled that brings in a SIMD-accelerated Rust implementation. #### What's Changed - Fix build for beta and nightly by [@&#8203;JakubOnderka](https://github.com/JakubOnderka) in [#&#8203;388](https://github.com/rust-lang/flate2-rs/pull/388) - Store `StreamWrapper::inner` as a raw pointer by [@&#8203;icmccorm](https://github.com/icmccorm) in [#&#8203;394](https://github.com/rust-lang/flate2-rs/pull/394) - Avoid redudant imports by [@&#8203;Byron](https://github.com/Byron) in [#&#8203;398](https://github.com/rust-lang/flate2-rs/pull/398) - add `zlib-rs` support via the `libz-rs-sys` C api for `zlib-rs` by [@&#8203;folkertdev](https://github.com/folkertdev) in [#&#8203;400](https://github.com/rust-lang/flate2-rs/pull/400) - Add tests to show BufRead can be used after decoding by [@&#8203;jongiddy](https://github.com/jongiddy) in [#&#8203;402](https://github.com/rust-lang/flate2-rs/pull/402) - release version 1.0.29: support for zlib-rs by [@&#8203;folkertdev](https://github.com/folkertdev) in [#&#8203;403](https://github.com/rust-lang/flate2-rs/pull/403) #### New Contributors - [@&#8203;JakubOnderka](https://github.com/JakubOnderka) made their first contribution in [#&#8203;388](https://github.com/rust-lang/flate2-rs/pull/388) - [@&#8203;icmccorm](https://github.com/icmccorm) made their first contribution in [#&#8203;394](https://github.com/rust-lang/flate2-rs/pull/394) - [@&#8203;folkertdev](https://github.com/folkertdev) made their first contribution in [#&#8203;400](https://github.com/rust-lang/flate2-rs/pull/400) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29> </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.33`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.32...ignore-0.4.33) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.32...ignore-0.4.33) ### [`v0.4.32`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.31...ignore-0.4.32) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.31...ignore-0.4.32) ### [`v0.4.31`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.30...ignore-0.4.31) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.30...ignore-0.4.31) ### [`v0.4.30`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.29...ignore-0.4.30) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.29...ignore-0.4.30) ### [`v0.4.29`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.29) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.29) ### [`v0.4.28`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.27...ignore-0.4.28) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.27...ignore-0.4.28) ### [`v0.4.27`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.26...ignore-0.4.27) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.26...ignore-0.4.27) ### [`v0.4.26`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.25...ignore-0.4.26) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.25...ignore-0.4.26) ### [`v0.4.25`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.24...ignore-0.4.25) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.24...ignore-0.4.25) ### [`v0.4.24`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.23...ignore-0.4.24) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.23...ignore-0.4.24) ### [`v0.4.23`](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.22...ignore-0.4.23) [Compare Source](https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.22...ignore-0.4.23) </details> <details> <summary>assert-rs/predicates-rs (predicates)</summary> ### [`v3.1.4`](https://github.com/assert-rs/predicates-rs/blob/HEAD/CHANGELOG.md#314---2026-02-11) [Compare Source](https://github.com/assert-rs/predicates-rs/compare/v3.1.3...v3.1.4) - Make `BoxPredicate::find_case` use the inner `find_case` implementation ### [`v3.1.3`](https://github.com/assert-rs/predicates-rs/blob/HEAD/CHANGELOG.md#313---2024-12-19) [Compare Source](https://github.com/assert-rs/predicates-rs/compare/v3.1.2...v3.1.3) ##### Features - The `boxed` function is now available for predicates with an `Item` type that is not `Sized`. ### [`v3.1.2`](https://github.com/assert-rs/predicates-rs/blob/HEAD/CHANGELOG.md#312---2024-07-25) [Compare Source](https://github.com/assert-rs/predicates-rs/compare/v3.1.0...v3.1.2) </details> <details> <summary>rust-random/rand (rand)</summary> ### [`v0.8.7`](https://github.com/rust-random/rand/releases/tag/0.8.7) [Compare Source](https://github.com/rust-random/rand/compare/0.8.6...0.8.7) ##### What's Changed - rand v0.8.7: backport [#&#8203;1790](https://github.com/rust-random/rand/issues/1790) by [@&#8203;dhardy](https://github.com/dhardy) in [#&#8203;1804](https://github.com/rust-random/rand/pull/1804) **Full Changelog**: <https://github.com/rust-random/rand/compare/0.8.6...0.8.7> ### [`v0.8.6`](https://github.com/rust-random/rand/releases/tag/0.8.6) [Compare Source](https://github.com/rust-random/rand/compare/0.8.5...0.8.6) ##### What's Changed This release back-ports a fix from v0.10. See also [#&#8203;1763]. ##### Changes - Deprecate feature `log` ([#&#8203;1772]) [#&#8203;1763]: https://github.com/rust-random/rand/pull/1763 [#&#8203;1772]: https://github.com/rust-random/rand/pull/1772 - Drop the experimental `simd_support` feature. ##### New Contributors - [@&#8203;nwalfield](https://github.com/nwalfield) made their first contribution in [#&#8203;1772](https://github.com/rust-random/rand/pull/1772) **Full Changelog**: <https://github.com/rust-random/rand/compare/0.8.5...0.8.6> </details> <details> <summary>serde-rs/serde (serde)</summary> ### [`v1.0.229`](https://github.com/serde-rs/serde/releases/tag/v1.0.229) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.228...v1.0.229) - Update to syn 3 ### [`v1.0.228`](https://github.com/serde-rs/serde/releases/tag/v1.0.228) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.227...v1.0.228) - Allow building documentation with `RUSTDOCFLAGS='--cfg=docsrs'` set for the whole dependency graph ([#&#8203;2995](https://github.com/serde-rs/serde/issues/2995)) ### [`v1.0.227`](https://github.com/serde-rs/serde/releases/tag/v1.0.227) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.226...v1.0.227) - Documentation improvements ([#&#8203;2991](https://github.com/serde-rs/serde/issues/2991)) ### [`v1.0.226`](https://github.com/serde-rs/serde/releases/tag/v1.0.226) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.225...v1.0.226) - Deduplicate variant matching logic inside generated Deserialize impl for adjacently tagged enums ([#&#8203;2935](https://github.com/serde-rs/serde/issues/2935), thanks [@&#8203;Mingun](https://github.com/Mingun)) ### [`v1.0.225`](https://github.com/serde-rs/serde/releases/tag/v1.0.225) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.224...v1.0.225) - Avoid triggering a deprecation warning in derived Serialize and Deserialize impls for a data structure that contains its own deprecations ([#&#8203;2879](https://github.com/serde-rs/serde/issues/2879), thanks [@&#8203;rcrisanti](https://github.com/rcrisanti)) ### [`v1.0.224`](https://github.com/serde-rs/serde/releases/tag/v1.0.224) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.223...v1.0.224) - Remove private types being suggested in rustc diagnostics ([#&#8203;2979](https://github.com/serde-rs/serde/issues/2979)) ### [`v1.0.223`](https://github.com/serde-rs/serde/releases/tag/v1.0.223) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.222...v1.0.223) - Fix serde\_core documentation links ([#&#8203;2978](https://github.com/serde-rs/serde/issues/2978)) ### [`v1.0.222`](https://github.com/serde-rs/serde/releases/tag/v1.0.222) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.221...v1.0.222) - Make `serialize_with` attribute produce code that works if respanned to 2024 edition ([#&#8203;2950](https://github.com/serde-rs/serde/issues/2950), thanks [@&#8203;aytey](https://github.com/aytey)) ### [`v1.0.221`](https://github.com/serde-rs/serde/releases/tag/v1.0.221) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.220...v1.0.221) - Documentation improvements ([#&#8203;2973](https://github.com/serde-rs/serde/issues/2973)) - Deprecate `serde_if_integer128!` macro ([#&#8203;2975](https://github.com/serde-rs/serde/issues/2975)) ### [`v1.0.220`](https://github.com/serde-rs/serde/releases/tag/v1.0.220) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.219...v1.0.220) - Add a way for data formats to depend on serde traits without waiting for serde\_derive compilation: <https://docs.rs/serde_core> ([#&#8203;2608](https://github.com/serde-rs/serde/issues/2608), thanks [@&#8203;osiewicz](https://github.com/osiewicz)) ### [`v1.0.219`](https://github.com/serde-rs/serde/releases/tag/v1.0.219) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.218...v1.0.219) - Prevent `absolute_paths` Clippy restriction being triggered inside macro-generated code ([#&#8203;2906](https://github.com/serde-rs/serde/issues/2906), thanks [@&#8203;davidzeng0](https://github.com/davidzeng0)) ### [`v1.0.218`](https://github.com/serde-rs/serde/releases/tag/v1.0.218) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.217...v1.0.218) - Documentation improvements </details> <details> <summary>wasm-bindgen/wasm-bindgen (wasm-bindgen)</summary> ### [`v0.2.127`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02127) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.126...0.2.127) ##### Added - [Navigation API](https://developer.mozilla.org/en-US/docs/Web/API/Navigation_API) to `web-sys` [#&#8203;5247](https://github.com/wasm-bindgen/wasm-bindgen/pull/5247) - Added `riscv64gc-unknown-linux-gnu` release artifacts. [#&#8203;5265](https://github.com/wasm-bindgen/wasm-bindgen/pull/5265) - Added `JsNullable<T>`, modeling WebIDL nullable types (`T | null`). Both `null` and `undefined` are treated as absent, per WebIDL's ECMAScript conversion rules; the canonical empty value produced from Rust is `null`. `web-sys` now uses `JsNullable<T>` instead of `JsOption<T>` for nullable types nested inside generics (e.g. `Promise<GpuError?>` from `GPUDevice.popErrorScope()`), fixing spec-defined `null` resolutions being treated as present values under `JsOption<T>`'s strict undefined-only semantics. `JsNullable<T>` participates in the same upcast lattice as `JsOption<T>` (including contravariant closure argument casts), and additionally upcasts from `Null` and from `JsOption<T>` itself. Imported extern types now also upcast into `JsOption<JsValue>` and `JsNullable<JsValue>`, so catch-all nullable closures can be used where a typed callback is expected. [#&#8203;5234](https://github.com/wasm-bindgen/wasm-bindgen/issues/5234) ##### Changed - Emscripten output now marks public exports (free functions, classes, enums, and namespace roots) with the `__export: true` and `__force: true` symbol attributes on their `addToLibrary` entries, instead of mutating `EXPORTED_FUNCTIONS` and pushing to `extraLibraryFuncs` at library-load time. The `$initBindgen` init closure is kept via `__force: true`, and private symbols (including namespace leaves) carry neither attribute — they remain reachable through `__deps`. Requires an emscripten with `__export`/`__force` symbol-attribute support. - Updated WebGPU bindings to the August 2026 spec, including the new `GPUCommandEncoder::copy_buffer_to_buffer` overloads and `setImmediates`. [#&#8203;5246](https://github.com/wasm-bindgen/wasm-bindgen/pull/5246) - Unstable API overload names now elide name tokens shared by every overload variant: `LockManager::request_with_callback` is now `request`, and `request_with_options_and_callback` is now `request_with_options`. [#&#8203;5246](https://github.com/wasm-bindgen/wasm-bindgen/pull/5246) ##### Fixed - The `name` property of the JS error thrown for `panic=unwind` is now set from a string literal instead of `PanicError.name`, so it survives minification. [#&#8203;5260](https://github.com/wasm-bindgen/wasm-bindgen/issues/5260) - Fixed Emscripten builds using pthreads failing to link. [#&#8203;5254](https://github.com/wasm-bindgen/wasm-bindgen/pull/5254) - `__wbg_load` in web targets now throws a clear error including the HTTP status and URL when given a non-ok fetch `Response`, instead of surfacing a misleading MIME-type or Wasm-magic-number error. [#&#8203;5256](https://github.com/wasm-bindgen/wasm-bindgen/pull/5256) - Restored `__stack_pointer` when an exception unwinds out of a wasm export, preventing repeated `panic = "unwind"` calls from leaking shadow-stack frames until the shadow stack is exhausted and calls trap. Node reports `memory access out of bounds`; poisoned instances can instead report `Module terminated`. [#&#8203;5244](https://github.com/wasm-bindgen/wasm-bindgen/pull/5244) - `slice_to_array` on a `&mut` slice (which silently discarded JS's writes) or on a slice with a generic element type is now a compile error, and strings and arrays received by JS (e.g. a `Vec<String>` return value) no longer make a redundant copy of the freshly built value. [#&#8203;5261](https://github.com/wasm-bindgen/wasm-bindgen/pull/5261) - Fixed `async` imports with non-JS-handle resolved types (e.g. `async fn f() -> u32;`) silently producing garbage since 0.2.109: the descriptor named the resolved type instead of the `Promise` handle that actually crosses the ABI. \#[5249](https://github.com/wasm-bindgen/wasm-bindgen/pull/5249) - Fixed `catch` imports returning `i64`/`u64` throwing a `TypeError` (and panicking in `__wbindgen_exn_store`) when the JS import throws, since the `handleError` catch path returned `undefined` which cannot be converted to a Wasm `i64`. [#&#8203;5238](https://github.com/wasm-bindgen/wasm-bindgen/pull/5238) - `js_namespace` is now part of an imported function's and imported static's generated shim name. Two imports with identical Rust signatures that differed *only* in their `js_namespace` hashed to the same `__wbg_<name>_<hash>` symbol, so they were treated as one binding and one of the two call sites silently invoked the wrong JS value. [#&#8203;5250](https://github.com/wasm-bindgen/wasm-bindgen/pull/5250) - Macro hygiene fixes - `slice_to_array` now works in `#![no_std]` crates. Generated code no longer names `core` or `std` unqualified. [#&#8203;5251](https://github.com/wasm-bindgen/wasm-bindgen/pull/5251) - Fixed length prefixes in descriptor strings to count `char`s rather than UTF-8 bytes, so non-ASCII names in `js_name`/`typescript_type` no longer panic the CLI or mis-bind the generated bindings. [#&#8203;5248](https://github.com/wasm-bindgen/wasm-bindgen/pull/5248) - Fixed threaded Wasm memory layout to reserve wasm-bindgen's internal thread page after the module's original initial memory instead of at `__heap_base`, avoiding overlap with allocators that resolve `__heap_base`/`__heap_end` at link time and treat that range as preexisting heap space. [#&#8203;5225](https://github.com/wasm-bindgen/wasm-bindgen/pull/5225) - Emscripten output now reaches wasm exports through emscripten's `wasmExports` object using bracket (string-literal) access (`wasmExports['__wbindgen_start']`) instead of a local `wasm` alias with dot access. `wasmExports['name']` is the form emcc's DCE graph roots and its import/export minifier renames in the JS and the wasm together, so the glue now survives and stays consistent under `-O3`/`-Os` (previously the export names were minified without updating the JS call sites, e.g. `__wbindgen_start is not defined`). - The emscripten detection marker static is no longer leaked as public API. [#&#8203;5220](https://github.com/wasm-bindgen/wasm-bindgen/pull/5220) [#&#8203;5222](https://github.com/wasm-bindgen/wasm-bindgen/pull/5222) ### [`v0.2.126`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02126) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.125...0.2.126) ##### Changed - Emscripten output now hoists every clean export (free functions, classes, enums, plus their finalization registries and string-enum tables) out of the `$initBindgen` init closure into its own top-level `addToLibrary` symbol and self-registers it into `EXPORTED_FUNCTIONS`. emscripten then emits the clean API (`add`, `Counter`, ...) as named ESM exports under `-sMODULARIZE=instance` and as `Module.<name>` properties (via each symbol's `__postset`) in factory mode, with no extra sidecar files. Namespaced exports are reached through their namespace root (e.g. `app`), assembled in the root symbol's `__postset`. User module/inline-js imports are now wired as `addToLibrary` shims (they were previously dropped, since emcc resolves imports only against `env`), and their ESM-imported bindings are `__wbg_`-prefixed to avoid colliding with emcc runtime names such as `Module`/`HEAP8`. [#&#8203;5210](https://github.com/wasm-bindgen/wasm-bindgen/pull/5210) ##### Fixed - The descriptor interpreter now follows emscripten `invoke_*` trampolines. emscripten's exception/longjmp lowering rewrites direct calls into indirect calls through the function table wrapped in imported `invoke_*(fnptr, ..args)` helpers, including the describe helpers a descriptor function must reach. The interpreter resolves `fnptr` against the reconstructed function table, forwards the trailing arguments, and evaluates the surrounding "did it throw?" control flow (`if`/`else`, `loop`, `br_table`), so descriptors are interpreted correctly on emscripten builds with unwinding/longjmp enabled. [#&#8203;5215](https://github.com/wasm-bindgen/wasm-bindgen/pull/5215) - Relaxed alignment requirement for 8-byte types. [#&#8203;5204](https://github.com/wasm-bindgen/wasm-bindgen/pull/5204) - Fixed compilation with `(feature = "std", panic = "unwind", target_feature = "atomics")` and prevented a `Task` leak when a future unwinds out of `poll` (via a Rust panic or a foreign JS exception) in both the single-threaded and multi-threaded executors. [#&#8203;5214](https://github.com/wasm-bindgen/wasm-bindgen/pull/5214) - Headless Chrome/Edge tests now surface the WebDriver's own error message when session creation fails (e.g. a chromedriver/Chrome version mismatch) instead of a confusing `http status: 404`. [#&#8203;5211](https://github.com/wasm-bindgen/wasm-bindgen/pull/5211) ##### Removed ### [`v0.2.125`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02125) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.123...0.2.125) ##### Added - Added the `--force-enable-abort-handler` CLI flag, which emits the hard-abort detection and `set_on_abort` machinery on `panic=abort` builds. With `panic=unwind` this machinery is generated automatically; the flag does nothing there. [#&#8203;5191](https://github.com/wasm-bindgen/wasm-bindgen/pull/5191) ##### Changed - Made the internal `__wbindgen_destroy_closure` export private in the Rust API. [#&#8203;5196](https://github.com/wasm-bindgen/wasm-bindgen/pull/5196) ### [`v0.2.123`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02123) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.122...0.2.123) ##### Added - Added the `maxAge` attribute to the `CookieInit` dictionary in `web-sys`, matching the current Cookie Store API specification. [#&#8203;5169](https://github.com/wasm-bindgen/wasm-bindgen/pull/5169) - The js-sys futures codegen opt-in can now also be enabled via the `WASM_BINDGEN_USE_JS_SYS=1` environment variable, in addition to `--cfg=wasm_bindgen_use_js_sys`. This works on stable when `--target` is in use, where Cargo does not propagate the cfg to host proc-macros. [#&#8203;5164](https://github.com/wasm-bindgen/wasm-bindgen/pull/5164) ##### Changed - `JsOption<T>` now treats only `undefined` as empty, aligning it with TypeScript's strict `T | undefined` semantics and with `Option<T>`'s wire shape (`None` ↔ `undefined`). Previously `is_empty`, `as_option`, `into_option`, `unwrap`, `expect`, `unwrap_or_default`, and `unwrap_or_else` treated both `null` and `undefined` as absent; JS `null` is now a distinct present value. The `impl<T> UpcastFrom<Null> for JsOption<T>` is removed (`Undefined` still models absence), and the `Debug`/`Display` absent placeholder changed from `"null"` to `"undefined"`. Code relying on `null → None` should return `undefined` from the JS side, or check explicitly with `val.as_option().filter(|v| !v.is_null())`. [#&#8203;5170](https://github.com/wasm-bindgen/wasm-bindgen/pull/5170) ##### Fixed - Removed invalid `js_sys::Array<T>` to `js_sys::ArrayTuple<(...)>` upcasts. `ArrayTuple` encodes a fixed tuple arity, while a plain JavaScript array does not prove that arity statically. - Fixed incorrect variance in `&mut` reference upcasting. `&mut T` upcasts were covariant in the pointee, so a `&mut T` could be widened to a `&mut` of a supertype and used to write back a value the original type would not accept, leaving a reference whose static type no longer matches the value it points to. Mutable references are now *invariant* in their pointee: `&mut T` only upcasts to `&mut Target` when both `Target: UpcastFrom<T>` and `T: UpcastFrom<Target>` hold. This rejects the invalid widening but is a breaking change for callers that relied on widening `&mut` references. [#&#8203;5176](https://github.com/wasm-bindgen/wasm-bindgen/issues/5176) - Fixed WASI targets (`wasm32-wasip1`/`wasm32-wasip2`) emitting unresolved `__wbindgen_placeholder__` imports, which broke component linking. The codegen and runtime gates now exclude `target_os = "wasi"` (restoring the pre-0.2.115 stub behavior), including the `panic = "unwind"` paths in `wasm-bindgen-futures`. [#&#8203;5175](https://github.com/wasm-bindgen/wasm-bindgen/pull/5175) - Fixed a panic ("Unhandled load width 8") in the descriptor interpreter when processing `-Cinstrument-coverage`-instrumented modules, unblocking `cargo llvm-cov --target wasm32-unknown-unknown` for crates whose describe helpers get instrumented. [#&#8203;5179](https://github.com/wasm-bindgen/wasm-bindgen/pull/5179) - Fixed `main` silently never running on wasm64 for bin crates. [#&#8203;5181](https://github.com/wasm-bindgen/wasm-bindgen/pull/5181) ### [`v0.2.122`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02122) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.121...0.2.122) ##### Notices - Threading support now requires `-Clink-arg=--export=__heap_base` to be set in `RUSTFLAGS` for nightly toolchains from 2026-05-06 onward, after [rust-lang/rust#156174](https://github.com/rust-lang/rust/pull/156174) removed the implicit `__heap_base`/`__data_end` exports on `wasm*` targets. Atomics CI, CLI reference tests, and the `nodejs-threads`, `raytrace-parallel`, and `wasm-audio-worklet` examples have been updated to pass `--export=__heap_base` explicitly. The flag is backward-compatible with older nightlies. - `-Cpanic=unwind` on wasm targets now emits modern (exnref) exception handling by default after [rust-lang/rust#156061](https://github.com/rust-lang/rust/pull/156061), and requires Node.js 22.22.3+ (for `WebAssembly.JSTag`). Legacy EH wasm can still be produced on current nightlies by adding `-Cllvm-args=-wasm-use-legacy-eh` to `RUSTFLAGS`; Node.js 20 may be supported with legacy exception handling, with a tracking issue in [#&#8203;5151](https://github.com/wasm-bindgen/wasm-bindgen/issues/5151). ##### Added - Implemented `TryFromJsValue` for `Vec<T>` where `T: TryFromJsValue`. A JS value converts when it is a real `Array` (per `Array.isArray`) and every element converts via `T::try_from_js_value`. This composes recursively (`Vec<Vec<String>>`, `Vec<Option<T>>`) and works for any `T` with a `TryFromJsValue` impl, including primitives, `String`, `JsValue`, and `JsCast` types. Array-likes (objects with `length` and numeric indices) are intentionally rejected to mirror the static ABI representation used by `js_value_vector_from_abi`. - New `extends_js_class` and `extends_js_namespace` attributes on exported structs to allow defining the parent `js_class` name when it has been customized by `js_name` and the parent's own `js_namespace` as well in turn. New validation is added at code generation time that will now catch these cases instead of emitting invalid code. Example: ```rust #[wasm_bindgen(js_name = "Animal", js_namespace = zoo)] pub struct AnimalImpl { /* ... */ } #[wasm_bindgen( extends = AnimalImpl, extends_js_class = "Animal", extends_js_namespace = zoo, )] pub struct DogImpl { /* ... */ } ``` [#&#8203;5154](https://github.com/wasm-bindgen/wasm-bindgen/pull/5154) ##### Changed - When an exported struct uses `js_namespace`, the corresponding value must now be repeated on every `impl` block. Previously the impl-side defaults silently worked resulting in inconsistent emission. Example: ```rust // Before: #[wasm_bindgen(js_namespace = "default")] pub struct Counter { /* ... */ } #[wasm_bindgen] // worked, but fragile impl Counter { /* ... */ } // After: #[wasm_bindgen(js_namespace = "default")] pub struct Counter { /* ... */ } #[wasm_bindgen(js_namespace = "default")] // now required impl Counter { /* ... */ } ``` To ease this transition for `js_namespace` usage, diagnostic messages now include hints for missing namespaces for easier fixing. [#&#8203;5154](https://github.com/wasm-bindgen/wasm-bindgen/pull/5154) ##### Fixed - Fixed the descriptor interpreter panicking on `Br` and `BrIf` instructions emitted by recent nightly compilers when building with `panic=unwind`. [#&#8203;5158](https://github.com/wasm-bindgen/wasm-bindgen/pull/5158) - Emscripten output now works against vanilla upstream emscripten without requiring a fork. Dependency tracking, `HEAP_DATA_VIEW` setup, function-decl intrinsic inlining, catch-wrapper gating, and imported global handling have all been corrected; ESM imports (`#[wasm_bindgen(module = "...")]` and snippets) are emitted to a sidecar `library_bindgen.extern-pre.js` consumers pass to emcc via `--extern-pre-js`; namespaced exports (`js_namespace = [...]` on a struct/impl) now attach to `Module.<segments>` instead of emitting top-level `export const` (which emcc's library evaluator rejects); the generated `.d.ts` for namespaced exports is now valid TypeScript (mangled identifiers stay module-internal via `declare class` / `declare enum` / `declare function` plus `export { BindgenModule };` to mark the file as a module; no spurious unqualified `Calc:` property on `BindgenModule` for namespaced items; namespace shapes land as plain interface members (`app: { math: { Calc: typeof app__math__Calc } };`) instead of the previously-emitted `export let app: { ... };` which was invalid TS1131 syntax inside an interface body). [#&#8203;5156](https://github.com/wasm-bindgen/wasm-bindgen/pull/5156) - Fixed a duplicate phantom class being emitted for an exported struct renamed via `js_name` (Rust ident != JS class name) and/or placed in a `js_namespace`, when the struct crosses the boundary as a `JsValue` (e.g. via `.into()`). The `WrapInExportedClass` / `UnwrapExportedClass` imports were keyed by the Rust ident rather than the qualified JS name that `exported_classes` is keyed by (a regression from [#&#8203;5154](https://github.com/wasm-bindgen/wasm-bindgen/issues/5154)), so a fresh empty class entry was minted and emitted alongside the real one, with a `free()` referencing a nonexistent wasm export. Riding the same release's [#&#8203;5154](https://github.com/wasm-bindgen/wasm-bindgen/issues/5154) wire-format bump, the now-vestigial `rust_name` field is dropped from the schema and the namespace-qualified name is no longer cached on `AuxStruct`, `AuxEnum`, or `ExportedClass` (derived on demand from `(name, js_namespace)`), collapsing three fallback chains that only papered over the [pre-#&#8203;5154](https://github.com/pre-/wasm-bindgen/issues/5154) keying. [#&#8203;5160](https://github.com/wasm-bindgen/wasm-bindgen/pull/5160) ### [`v0.2.121`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02121) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.120...0.2.121) ##### Added - Added the `slice_to_array` attribute for imported JS functions, which makes a `&[T]` (or `Option<&[T]>`) argument arrive on the JS side as a plain `Array` rather than a typed array — without changing the Rust-side `&[T]` signature. Useful when binding JS APIs that take `T[]` rather than `TypedArray<T>`. For primitive element kinds the wire is the same zero-copy borrow used by plain `&[T]`, with the JS-side shim wrapping the view in `Array.from(...)` to materialise the `Array` — no extra allocation. For `String`, `JsValue`, and JS-imported element types the Rust side builds a fresh `[u32]` index buffer that JS reads and frees, with per-element `&T -> JsValue` (refcount bump for handle-shaped types). No `T: Clone` bound is required. The attribute can be set per-fn (`#[wasm_bindgen(slice_to_array)] fn ...`) or per-block on an `extern "C" { ... }` declaration to apply to every imported function in that block. `&[ExportedRustStruct]` remains unsupported (use owned `Vec<T>` for that). Has no effect on exported functions; default `&[T]` (typed-array view / memory borrow) and owned `Vec<T>` semantics are unchanged for callers that didn't opt in. See the [`slice_to_array` guide page](reference/attributes/on-js-imports/slice_to_array.html). [#&#8203;5145](https://github.com/wasm-bindgen/wasm-bindgen/pull/5145) - Added `js_sys::AggregateError` bindings (constructor, `errors` getter, and `new_with_message` / `new_with_options` overloads). `AggregateError` represents multiple unrelated errors wrapped in a single error, e.g. as thrown by `Promise.any` when all input promises reject, along with `js_sys::ErrorOptions`, accepted by built-in error constructors. `ErrorOptions::new(cause)` constructs an instance pre-populated with `cause`, and `get_cause` / `set_cause` provide typed access to the property. All standard error constructors that previously took only a `message` (`EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, `URIError`, `WebAssembly.CompileError`, `WebAssembly.LinkError`, `WebAssembly.RuntimeError`) now expose a `new_with_options(message, &ErrorOptions)` overload, and `Error` gains `new_with_error_options(message, &ErrorOptions)` alongside the existing untyped `new_with_options`. `AggregateError::new_with_options` also takes `&ErrorOptions`. [#&#8203;5139](https://github.com/wasm-bindgen/wasm-bindgen/pull/5139) - Added inheritance for Rust-exported types: an exported struct may declare `#[wasm_bindgen(extends = Parent)]` to inherit from another exported `#[wasm_bindgen]` struct. The macro injects a hidden `parent: wasm_bindgen::Parent<Parent>` field (a refcounted cell around the parent value) and emits `class Child extends Parent` in the generated JS / `.d.ts`. The child gets an `AsRef<Parent<Parent>>` impl for the direct parent, and threads per-class pointer slots through the wasm ABI so that `instanceof Parent` is true and parent methods dispatch soundly via the JS prototype chain. From inside child methods, parent data is reached via `self.parent.borrow()` / `self.parent.borrow_mut()`. See the new [`extends` guide page](reference/attributes/on-rust-exports/extends.html). [#&#8203;5120](https://github.com/wasm-bindgen/wasm-bindgen/pull/5120) - Added `js_sys::FinalizationRegistry` bindings (constructor, `register`, `register_with_token`, and `unregister`). The cleanup callback parameter is typed as `&Function<fn(JsValue) -> Undefined>`, so closures created via `Closure::new` can be passed using `Function::from_closure` (for owned closures retained by JS) or `Function::closure_ref` (for borrowed scoped closures). Pairs with the existing `js_sys::WeakRef` bindings. [#&#8203;5140](https://github.com/wasm-bindgen/wasm-bindgen/pull/5140) - Added support for well-known symbols in `js_name`, `getter`, and `setter` via the explicit bracket-string form `"[Symbol.<name>]"`. This works for imported and exported methods, fields, getters, and setters. For example, `#[wasm_bindgen(js_name = "[Symbol.iterator]")]` on an exported method generates `[Symbol.iterator]() { ... }` on the generated JS class, and the same syntax works for `getter` / `setter` and for imported items. [#&#8203;4230](https://github.com/wasm-bindgen/wasm-bindgen/pull/4230) - Added level 2 bindings for `ViewTransition` to `web-sys`. [#&#8203;5138](https://github.com/wasm-bindgen/wasm-bindgen/pull/5138) - Add support for dynamic unions: a `#[wasm_bindgen]` enum that mixes string-literal variants with single-field tuple variants is now exported as an untagged TypeScript union and dispatched dynamically at the JS↔Rust boundary. The new enum-level `#[wasm_bindgen(fallback)]` attribute makes the last tuple variant an unconditional catch-all, supporting unions whose trailing variant has no runtime check (e.g., interface-only imports). String enums and dynamic unions now emit `export type` (was bare `type`) so the alias is a named export, and both honour the `private` flag to suppress the keyword. [#&#8203;4734](https://github.com/wasm-bindgen/wasm-bindgen/pull/4734) [#&#8203;2153](https://github.com/wasm-bindgen/wasm-bindgen/issues/2153) [#&#8203;2088](https://github.com/wasm-bindgen/wasm-bindgen/issues/2088) ##### Fixed - `From<Promise<T>> for JsFuture<T>` and `IntoFuture for Promise<T>` now accept any `T: FromWasmAbi` (rather than `T: JsGeneric`), letting imported `async fn`s return dynamic-union enums. - `TryFromJsValue` for C-style enums no longer accepts non-numeric values via JS unary `+` coercion. Previously calling `dyn_into::<MyEnum>()` on a string would silently coerce it via `+"foo"` (yielding `NaN`, then `NaN as u32 = 0`) and could match a discriminant by accident; the conversion now returns `None` for any value that is not a JS number. [#&#8203;4734](https://github.com/wasm-bindgen/wasm-bindgen/pull/4734) - Fix compilation failure with `no_std` + `release` [#&#8203;5134](https://github.com/wasm-bindgen/wasm-bindgen/pull/5134) - Raw identifiers (`r#name`) on enums, enum variants, extern types, statics, and `impl` blocks no longer leak the `r#` prefix into generated JS / TS output and shim names. The Rust-side identifier and the JS-side name are now tracked separately for enum variants, and all known identifier fallback paths apply `Ident::unraw()` so e.g. `pub enum r#Enum { r#A }` generates `Enum.A` instead of producing syntactically invalid JS. [#&#8203;4323](https://github.com/wasm-bindgen/wasm-bindgen/pull/4323) - Using the `-C panic=unwind` option when building for the bundler target would produce invalid JS. [#&#8203;5142](https://github.com/wasm-bindgen/wasm-bindgen/pull/5142) ##### Changed - `js_sys::DataView` now implements the `js_sys::TypedArray` trait. A `FIXME` notes that the trait should be renamed to `ArrayBufferView` in the next major release to better reflect the WebIDL spec name covering both `DataView` and the typed-array types. [#&#8203;5135](https://github.com/wasm-bindgen/wasm-bindgen/pull/5135) ### [`v0.2.120`](https://github.com/wasm-bindgen/wasm-bindgen/releases/tag/0.2.120) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.118...0.2.120) ##### Added - Added support for the `wasm64-unknown-unknown` target (memory64 / wasm64). `usize` / `isize` and raw pointers are now lowered through an `f64` JS number ABI on wasm64 (matching the existing convention used for `Option<u32>` etc. on wasm32), with the CLI inspecting the module's memory type to pick the right codegen path. Includes a dedicated `wasm64` CI job and test suite covering the new ABI paths. [#&#8203;5004](https://github.com/wasm-bindgen/wasm-bindgen/pull/5004) - Promise ergonomics: `Promise::all_tuple` and `Promise::all_settled_tuple` for heterogeneous concurrent awaits (arity 1..=8, destructure via `.into_tuple()`), and a new `wasm_bindgen::IntoJsGeneric` trait underpinning typed-`Array` inference (with codegen-emitted identity impls and a `#[wasm_bindgen(no_into_js_generic)]` opt-out for types like `JsClosure`). Also re-exports `JsGeneric` from the prelude. Typed collection on `js_sys::Array<T>` is exposed as the inherent constructor `Array::<T>::from_iter_typed` (and companion `extend_typed`), inferring `T` from the iterator item via `IntoJsGeneric`. The stable `FromIterator` / `Extend` impls on `Array` (= `Array<JsValue>`) bound by `AsRef<JsValue>` are preserved, so existing `.collect::<Array>()` call sites keep compiling unchanged. Fixes [#&#8203;5042](https://github.com/wasm-bindgen/wasm-bindgen/issues/5042). [#&#8203;5121](https://github.com/wasm-bindgen/wasm-bindgen/pull/5121), [#&#8203;5125](https://github.com/wasm-bindgen/wasm-bindgen/pull/5125) - Added `wasm_bindgen::instance()` to return the current `WebAssembly.Instance`. The generated JS glue retains the instantiated `WebAssembly.Instance`. [#&#8203;5118](https://github.com/wasm-bindgen/wasm-bindgen/pull/5118) - Added a `--cfg=wasm_bindgen_use_js_sys` opt-in that makes async macro codegen use `js_sys::futures` instead of `wasm_bindgen_futures`, dropping the need for `wasm-bindgen-futures` when the crate already depends on `js-sys`. A cfg is used rather than a Cargo feature so the choice stays scoped to the crate that opts in. [#&#8203;5112](https://github.com/wasm-bindgen/wasm-bindgen/pull/5112) [#&#8203;5127](https://github.com/wasm-bindgen/wasm-bindgen/pull/5127) ##### Changed - Simplified generated `web-sys` bindings by omitting redundant `#[wasm_bindgen]` attributes when they match wasm-bindgen defaults, including structural method annotations and matching `js_name` entries. The `#[wasm_bindgen]` attribute parser now also accepts string-literal forms for `extends`, `static_method_of`, and `vendor_prefix` (alongside the existing bare-path/ident syntax), and the generator emits these arguments along with `js_name` as string literals so `rustfmt` can format the generated `#[wasm_bindgen(...)]` attributes uniformly. [#&#8203;5122](https://github.com/wasm-bindgen/wasm-bindgen/pull/5122) ##### Fixed - Fixed namespaced export identifiers in generated JS/TS to use qualified names consistently, resolving order-dependent codegen issues across platforms. Also fixed `Vec<T>` types in TS signatures to resolve through the identifier map. [#&#8203;5106](https://github.com/wasm-bindgen/wasm-bindgen/pull/5106) - Fixed `wasm-bindgen-test-runner` treating ChromeDriver stderr warnings as startup failures on macOS, causing a restart loop until timeout. The runner no longer uses stderr output to determine if a driver has failed; instead a per-attempt timeout detects stuck drivers and retries on a new port. [#&#8203;5111](https://github.com/wasm-bindgen/wasm-bindgen/pull/5111) ### [`v0.2.118`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02118) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.117...0.2.118) ##### Added - Added `Error::stack_trace_limit()` and `Error::set_stack_trace_limit()` bindings to `js-sys` for the non-standard V8 `Error.stackTraceLimit` property. [#&#8203;5082](https://github.com/wasm-bindgen/wasm-bindgen/pull/5082) - Added support for multiple `#[wasm_bindgen(start)]` functions, which are chained together at initialization, as well as a new `#[wasm_bindgen(start, private)]` to register a start function without exporting it as a public export. [#&#8203;5081](https://github.com/wasm-bindgen/wasm-bindgen/pull/5081) - Reinitialization is no longer automatically applied when using `panic=unwind` and `--experimental-reset-state-function`, instead it is triggered by any use of the `handler::schedule_reinit()` function under `panic=unwind`, which is supported from within the `on_abort` handler for reinit workflows. Renamed `handler::reinit()` to `handler::schedule_reinit()` and removed the `set_on_reinit()` handler. The `__instance_terminated` address is now always a simple boolean (`0` = live, `1` = terminated). [#&#8203;5083](https://github.com/wasm-bindgen/wasm-bindgen/pull/5083) - `handler::schedule_reinit()` now works under `panic=abort` builds. Previously it was a no-op; it now sets the JS-side reinit flag and the next export call transparently creates a fresh `WebAssembly.Instance`. [#&#8203;5099](https://github.com/wasm-bindgen/wasm-bindgen/pull/5099) ##### Changed - MSRV bump from 1.71 to 1.76 for the CLI, and 1.82 to 1.86 for the API [#&#8203;5102](https://github.com/wasm-bindgen/wasm-bindgen/pull/5102) ##### Fixed - ES module `import` statements are now hoisted to the top of generated JS files, placed right after the `@ts-self-types` directive. This ensures valid ES module output since `import` declarations must precede other statements. [#&#8203;5103](https://github.com/wasm-bindgen/wasm-bindgen/pull/5103) - Fixed two CLI issues affecting WASM modules built by rustc 1.94+. First, a panic (`failed to find N in function table`) caused by lld emitting element segment offsets as `global.get $__table_base` or extended const expressions instead of plain `i32.const N` for large function tables; the fix adds a const-expression evaluator in `get_function_table_entry` and guards against integer underflow in multi-segment tables. Second, the descriptor interpreter now routes all global reads/writes through a single `globals` HashMap seeded from the module's own globals, and mirrors the module's actual linear memory rather than a fixed 32KB buffer, so the stack pointer's real value is valid without any override. This fixes panics like `failed to find 32752 in function table` caused by `GOT.func.internal.*` globals being misidentified as the stack pointer. [#&#8203;5076](https://github.com/wasm-bindgen/wasm-bindgen/issues/5076) [#&#8203;5080](https://github.com/wasm-bindgen/wasm-bindgen/issues/5080) [#&#8203;5093](https://github.com/wasm-bindgen/wasm-bindgen/issues/5093) [#&#8203;5095](https://github.com/wasm-bindgen/wasm-bindgen/pull/5095) ### [`v0.2.117`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02117) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.116...0.2.117) ##### Fixed - Fixed a regression introduced in [#&#8203;5026](https://github.com/wasm-bindgen/wasm-bindgen/issues/5026) where stable `web-sys` methods that accept a union type containing a `[WbgGeneric]` interface (e.g. `ImageBitmapSource`, which includes `VideoFrame`) incorrectly applied typed generics to all union expansions rather than only those whose argument type is itself `[WbgGeneric]`. In practice this caused `Window::create_image_bitmap_with_*` and the corresponding `WorkerGlobalScope` overloads to return `Promise<ImageBitmap>` instead of `Promise<JsValue>` for the stable (non-`VideoFrame`) call sites, breaking `JsFuture::from(promise).await?`. [#&#8203;5064](https://github.com/wasm-bindgen/wasm-bindgen/issues/5064) [#&#8203;5073](https://github.com/wasm-bindgen/wasm-bindgen/pull/5073) - Fixed handling logic for environment variable `WASM_BINDGEN_TEST_ADDRESS` in the test runner, when running tests in headless mode. [#&#8203;5087](https://github.com/wasm-bindgen/wasm-bindgen/pull/5087) ### [`v0.2.116`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02116) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.115...0.2.116) ##### Added - Added `js_sys::Float16Array` bindings, `DataView` float16 accessors using `f32`, and raw `[u16]` helper APIs for interoperability with binary16 representations such as `half::f16`. [#&#8203;5033](https://github.com/wasm-bindgen/wasm-bindgen/pull/5033) ##### Changed - Updated to Walrus 0.26.1 for deterministic type section ordering. [#&#8203;5069](https://github.com/wasm-bindgen/wasm-bindgen/pull/5069) - The `#[wasm_bindgen]` macro now emits `&mut (impl FnMut(...) + MaybeUnwindSafe)` / `&(impl Fn(...) + MaybeUnwindSafe)` for raw `&mut dyn FnMut` / `&dyn Fn` import arguments instead of a hidden generic parameter and where-clause. The generated signature is cleaner and the `MaybeUnwindSafe` bound is visible directly in the argument position. The ABI and wire format are unchanged. When building with `panic=unwind`, closures that capture non-`UnwindSafe` values (e.g. `&mut T`, `Cell<T>`) must wrap them in `AssertUnwindSafe` before capture; on all other targets `MaybeUnwindSafe` is a no-op blanket impl. [#&#8203;5056](https://github.com/wasm-bindgen/wasm-bindgen/pull/5056) ### [`v0.2.115`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02115) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.114...0.2.115) ##### Added - `console.debug/log/info/warn/error` output from user-spawned `Worker` and `SharedWorker` instances is now forwarded to the CLI test runner during headless browser tests, just like output from the main thread. Works for blob URL workers, module workers, URL-based workers (importScripts), nested workers, and shared workers (including logs emitted before the first port connection). Non-cloneable arguments are serialized via `String()` rather than crashing the worker. The `--nocapture` flag is respected. [#&#8203;5037](https://github.com/wasm-bindgen/wasm-bindgen/pull/5037) - `js_sys::Promise<T>` now implements `IntoFuture`, enabling direct `.await` on any JS promise without a wrapper type. The `wasm-bindgen-futures` implementation has been moved into `js-sys` behind an optional `futures` feature, which is activated automatically when `wasm-bindgen-futures` is a dependency. All existing `wasm_bindgen_futures::*` import paths continue to work unchanged via re-exports. `js_sys::futures` is also available directly for users who want `promise.await` without depending on `wasm-bindgen-futures`. [#&#8203;5049](https://github.com/wasm-bindgen/wasm-bindgen/pull/5049) - Added `--target emscripten` support, generating a `library_bindgen.js` file for consumption by Emscripten at link time. Includes support for futures, JS closures, and TypeScript output. A new Emscripten-specific test runner is also included, along with CI integration. [#&#8203;4443](https://github.com/wasm-bindgen/wasm-bindgen/pull/4443) - Added `VideoFrame`, `VideoColorSpace`, and related WebCodecs dictionaries/enums to `web-sys`. [#&#8203;5008](https://github.com/wasm-bindgen/wasm-bindgen/pull/5008) - Added `wasm_bindgen::handler` module with `set_on_abort` and `set_on_reinit` hooks for `panic=unwind` builds. `set_on_abort` registers a callback invoked after the instance is terminated (hard abort, OOM, stack overflow). `set_on_reinit` registers a callback invoked after `reinit()` resets the WebAssembly instance via `--experimental-reset-state-function`. Handlers are stored as Wasm indirect-function-table indices so dispatch is safe even when linear memory is corrupt. ##### Changed - Replaced per-closure generic destructors with a single `__wbindgen_destroy_closure` export. [#&#8203;5019](https://github.com/wasm-bindgen/wasm-bindgen/pull/5019) - Refactored the headless browser test runner logging pipeline for dramatically improved performance (>400x faster on Chrome, >10x on Firefox, \~5x on Safari). Switched to incremental DOM scraping with `textContent.slice(offset)`, append-only output semantics, unified log capture across all log levels on failure, and browser-specific invisible-div optimizations (`display:none` for Chrome/Firefox, `visibility:hidden` for Safari). [#&#8203;4960](https://github.com/wasm-bindgen/wasm-bindgen/pull/4960) - TTY-gated status/clear output in the test runner shell to avoid `\r` control-character artifacts in non-interactive (CI) environments. [#&#8203;4960](https://github.com/wasm-bindgen/wasm-bindgen/pull/4960) - Added `bench_console_log_10mb` benchmark alongside the existing 1MB benchmark for the headless test runner. The main branch cannot complete this benchmark at any volume. [#&#8203;4960](https://github.com/wasm-bindgen/wasm-bindgen/pull/4960) - Updated to Walrus 0.26 [#&#8203;5057](https://github.com/wasm-bindgen/walrus/pull/5057) ##### Fixed - Fixed argument order when calling multi-parameter functions in the `wasm-bindgen` interpreter by reversing the args collected from the stack. [#&#8203;5047](https://github.com/wasm-bindgen/wasm-bindgen/pull/5047) - Added support for per-operation `[WbgGeneric]` in WebIDL, restoring typed generic return types (e.g. `Promise<ImageBitmap>`) for `createImageBitmap` on `Window` and `WorkerGlobalScope` that were lost after the `VideoFrame` stabilization. [#&#8203;5026](https://github.com/wasm-bindgen/wasm-bindgen/pull/5026) - Fixed missing `#[cfg(feature = "...")]` gates on deprecated dictionary builder methods and getters for union-typed fields (e.g. `{Open,Save,Directory}FilePickerOptions::start_in()`), and fixed per-setter doc requirements to list each setter's own required features. [#&#8203;5039](https://github.com/wasm-bindgen/wasm-bindgen/pull/5039) - Fixed `JsOption::new()` to use `undefined` instead of `null`, to be compatible with `Option::None` and JS default parameters. [#&#8203;5023](https://github.com/wasm-bindgen/wasm-bindgen/pull/5023) - Fixed unsound `unsafe` transmutes in `JsOption<T>::wrap`, `as_option`, and `into_option` by replacing `transmute_copy` with `unchecked_into()`. Also tightened the `JsGeneric` trait bound and `JsOption<T>` impl block to require `T: JsGeneric` (which implies `JsCast`), preventing use with arbitrary non-JS types. [#&#8203;5030](https://github.com/wasm-bindgen/wasm-bindgen/pull/5030) - Fixed headless test runner emitting `\r` carriage-return sequences in non-TTY environments, which polluted captured logs in CI and complicated output-matching tests. [#&#8203;4960](https://github.com/wasm-bindgen/wasm-bindgen/pull/4960) - Fixed headless test runner printing incomplete and out-of-order log output on test failures by merging all five log levels into a single unified output div. [#&#8203;4960](https://github.com/wasm-bindgen/wasm-bindgen/pull/4960) - Fixed large test outputs (10MB+) causing oversized WebDriver responses that were either extremely slow or crashed completely, by switching to incremental streaming output collection. [#&#8203;4960](https://github.com/wasm-bindgen/wasm-bindgen/pull/4960) - Fixed a duplciate wasm export in node ESM atomics, when compiled in debug mode [#&#8203;5028](https://github.com/wasm-bindgen/wasm-bindgen/pull/5028) - Fixed a type inference regression (`E0283: type annotations needed`) introduced in v0.2.109 where the stable `FromIterator` and `Extend` impls on `js_sys::Array` were changed from `A: AsRef<JsValue>` to `A: AsRef<T>`. Because `#[wasm_bindgen]` generates multiple `AsRef` impls per type, the compiler could not uniquely resolve `T`, breaking code like `Array::from_iter([my_wasm_value])` without explicit annotations. The stable impls are restored to `A: AsRef<JsValue>` (returning `Array<JsValue>`); the generic `A: AsRef<T>` forms remain available under `js_sys_unstable_apis`. [#&#8203;5052](https://github.com/wasm-bindgen/wasm-bindgen/pull/5052) - Fixed `skip_typescript` not being respected when using `reexport`, causing TypeScript definitions to be incorrectly emitted for re-exported items marked with `#[wasm_bindgen(skip_typescript)]`. [#&#8203;5051](https://github.com/wasm-bindgen/wasm-bindgen/pull/5051) ##### Removed ### [`v0.2.114`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02114) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.113...0.2.114) ##### Added - Added `[WbgGeneric]` WebIDL extended attribute for opting stable dictionary and interface definitions into typed generics (the same signatures unstable APIs use), avoiding legacy `&JsValue` fallbacks. Applied to all new VideoFrame-related types. [#&#8203;5008](https://github.com/wasm-bindgen/wasm-bindgen/pull/5008) - Added `unchecked_optional_param_type` attribute for marking exported function parameters as optional in TypeScript (`?:`) and JSDoc (`[paramName]`) output. Mutually exclusive with `unchecked_param_type`. Required parameters after optional parameters are rejected at compile time. [#&#8203;5002](https://github.com/wasm-bindgen/wasm-bindgen/pull/5002) - Added termination detection for `panic=unwind` builds. When a non-JS exception (e.g. a Rust panic) escapes from Wasm, the instance is marked as terminated and subsequent calls from JS into Wasm will throw a `Module terminated` error instead of re-entering corrupted state. [#&#8203;5005](https://github.com/wasm-bindgen/wasm-bindgen/pull/5005) - When `--reset-state` is combined with `panic=unwind` builds, the Wasm instance is automatically reset after a fatal termination, allowing subsequent calls to succeed instead of throwing a `Module terminated` error. [#&#8203;5013](https://github.com/wasm-bindgen/wasm-bindgen/pull/5013) ##### Changed - Replaced runtime `0x80000000` vtable bit-flag for closure unwind safety with a compile-time `const UNWIND_SAFE: bool` generic on the invoke shim, `OwnedClosure`, and `BorrowedClosure`. Removes `OwnedClosureUnwind` and deduplicates internal closure helpers. The public API is unchanged. [#&#8203;5003](https://github.com/wasm-bindgen/wasm-bindgen/pull/5003) - Removed unused `IntoWasmClosureRef*::WithLifetime` types, `WasmClosure::to_wasm_slice`, and a lifetime from `IntoWasmClosureRef*`; moved `Static` associated type into `WasmClosure`. [#&#8203;5003](https://github.com/wasm-bindgen/wasm-bindgen/pull/5003) ##### Fixed - Fixed exported structs/enums/functions with the same `js_name` but different `js_namespace` values producing symbol collisions at compile time, by deriving internal wasm symbols from a qualified name that includes the namespace. [#&#8203;4977](https://github.com/wasm-bindgen/wasm-bindgen/pull/4977) - Fixed soundness hole in `ScopedClosure`'s `UpcastFrom` that allowed to extend the lifetime after the original `ScopedClosure` was dropped. [#&#8203;5006](https://github.com/wasm-bindgen/wasm-bindgen/pull/5006) ### [`v0.2.113`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02113) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.112...0.2.113) ##### Changed - Reduced usage of `unsafe` code: replaced `transmute`/`transmute_copy` with safe alternatives for `Boolean`/`Null`/`Undefined` constants and `ArrayTuple` conversions, unified duplicated `AsRef`/`From` impls for generic imported types, and removed the `__wbindgen_object_is_undefined` intrinsic in favor of a safe Rust-side equivalent. [#&#8203;4993](https://github.com/wasm-bindgen/wasm-bindgen/pull/4993) - Renamed `__wbindgen_object_is_null_or_undefined` intrinsic to `__wbindgen_is_null_or_undefined` and removed the `__wbindgen_object_is_undefined` intrinsic, replacing it with a safe Rust-side check. The `is_null_or_undefined` check now uses safe `&JsValue` ABI instead of raw `u32`. [#&#8203;4994](https://github.com/wasm-bindgen/wasm-bindgen/pull/4994) ##### Fixed - Fixed incorrect method naming for stable web-sys methods that reference unstable types (e.g. `texImage2D` taking a `VideoFrame` parameter). These methods were being named in a separate unstable expansion namespace, producing overly-short names like `tex_image_2d` instead of the correct `tex_image_2d_with_u32_and_u32_and_video_frame`. The fix separates the signature classification to distinguish "from unstable IDL" (authoritative overrides) from "stable method using an unstable type", ensuring the latter is named as part of the stable expansion. [#&#8203;4991](https://github.com/wasm-bindgen/wasm-bindgen/pull/4991) ### [`v0.2.112`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02112) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.111...0.2.112) ##### Removed - Removed `ImmediateClosure` type introduced in 0.2.109. Stack-borrowed `&dyn Fn` / `&mut dyn FnMut` closures are now treated as unwind safe by default (panics are caught and converted to JS exceptions with proper unwinding). A unified `ScopedClosure::immediate` approach may be revisited in a future release. [#&#8203;4986](https://github.com/wasm-bindgen/wasm-bindgen/pull/4986) ### [`v0.2.111`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02111) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.110...0.2.111) ##### Fixed - Restored backwards compatibility for breaking changes introduced in 0.2.110: re-added deprecated `Promise::then2` binding, reverted `Promise::all_settled` stable signature to take `&JsValue` instead of owned `Object`, and added default type parameters (`= JsValue`) to `ArrayIntoIter`, `ArrayIter`, and `Iter` structs. [#&#8203;4979](https://github.com/wasm-bindgen/wasm-bindgen/pull/4979) ### [`v0.2.110`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02110) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.109...0.2.110) ##### Changed - Refactor new closure methods - ensures that all closure constructor functions have the variants `Closure::foo()`, `Closure::foo_aborting()` and `Closure::foo_assert_unwind_safe()` this then fully allows switching from the UnwindSafe bound now being applies on foo() to use one of the alternatives, given these limitations of AssertUnwindSafe. The same applies to `ImmediateClosure`. In addition, mutable reentrancy guards are added for `ImmediateClosure`, and it is updated to be pass-by-value as well. [#&#8203;4975](https://github.com/wasm-bindgen/wasm-bindgen/pull/4975) ##### Fixed - Fixed a regression where Array.of1,... variants using generic `Array<T>` broke inference. Reverted to use non-generic JsValue arguments. In addition extends generic class hoisting to for constructors to also include `static_method_of` methods returning the own type, to allow `Array::of` generic to now be on the `Array<T>` impl block. [#&#8203;4974](https://github.com/wasm-bindgen/wasm-bindgen/pull/4974) ### [`v0.2.109`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02109) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.108...0.2.109) ##### Added - Added support for erasable generic type parameters on imported JavaScript types, using sound type erasure in JS bindgen boundary. Includes updated js-sys bindings with generic implementations for many standard JS types and functions including `Array<T>`, `Promise<T>`, `Map<K, V>`, `Iterator<T>`, and more. [#&#8203;4876](https://github.com/wasm-bindgen/wasm-bindgen/pull/4876) - Added `ScopedClosure<'a, T>` as a unified closure type with lifetime parameter. `ScopedClosure::borrow(&f)` (for immutable `Fn`) and `ScopedClosure::borrow_mut(&mut f)` (for mutable `FnMut`) create borrowed closures that can capture non-`'static` references, ideal for immediate/synchronous JS callbacks. `Closure<T>` is now a type alias for `ScopedClosure<'static, T>`, maintaining backwards compatibility. Also added `IntoWasmAbi` implementation for `Closure<T>` enabling pass-by-value ownership transfer to JavaScript. - Added `ImmediateClosure<'a, T>` as a lightweight, unwind-safe replacement for `&dyn FnMut` in immediate/synchronous callbacks. Unlike `ScopedClosure`, it has no JS call on creation, no JS call on drop, and no GC overhead—the same ABI as `&dyn FnMut` but with panic safety. Use `ImmediateClosure::new(&f)` for immutable `Fn` closures (easier to satisfy unwind safety) or `ImmediateClosure::new_mut(&mut f)` for mutable `FnMut` closures. Closure parameter types are automatically inferred from context. Also implements `From<&ImmediateClosure<T>> for ScopedClosure<T>` for API migration. [#&#8203;4950](https://github.com/wasm-bindgen/wasm-bindgen/issues/4950) - Implement `#[wasm_bindgen(catch)]` exception handling directly in Wasm using `WebAssembly.JSTag` when Wasm exception handling is available. This generates smaller and faster code by avoiding JavaScript `handleError` wrapper functions. [#&#8203;4942](https://github.com/wasm-bindgen/wasm-bindgen/pull/4942) - Add Node.js `worker_threads` support for atomics builds. When targeting Node.js with atomics enabled, wasm-bindgen now generates `initSync({ module, memory, thread_stack_size })` and `__wbg_get_imports(memory)` functions that allow worker threads to initialize with a shared WebAssembly.Memory and pre-compiled module. Auto-initialization occurs only on the main thread for backwards compatibility. - Added a panic message when a getter has more than one argument. [#&#8203;4936](https://github.com/wasm-bindgen/wasm-bindgen/pull/4936) - Added support for WebIDL namespace attributes in `wasm-bindgen-webidl`. This enables APIs like the CSS Custom Highlight API which adds the `highlights` attribute to the `CSS` namespace. [#&#8203;4930](https://github.com/wasm-bindgen/wasm-bindgen/issues/4930) - Added stable `ShowPopoverOptions` dictionary and `show_popover_with_options()` method to `HtmlElement`, and unstable `TogglePopoverOptions` dictionary per the WHATWG HTML spec. [#&#8203;4968](https://github.com/wasm-bindgen/wasm-bindgen/pull/4968) - Added unstable Geolocation API types per the latest W3C spec: `GeolocationCoordinates`, `GeolocationPosition`, and `GeolocationPositionError`. The `Geolocation` interface now has both stable methods (using the old `Position`/`PositionError` types with `[Throws]`) and unstable methods (using the new types without `[Throws]}`, matching actual browser behavior). [#&#8203;2578](https://github.com/AbesBend662/AbesBend662.github.io/pull/2578) - Added `matrixTransform()` method to `DOMPointReadOnly` in `web-sys`. [#&#8203;4962](https://github.com/wasm-bindgen/wasm-bindgen/pull/4962) - Added the `web` and `node` targets to the `--experimental-reset-state-function` flag. [#&#8203;4909](https://github.com/wasm-bindgen/wasm-bindgen/pull/4909) - Added `oncancel` event handler to `GlobalEventHandlers` (available on `HtmlElement`, `Document`, `Window`, etc.). [#&#8203;4542](https://github.com/wasm-bindgen/wasm-bindgen/pull/4542) - Added `CommandEvent` and `CommandEventInit` from the Invoker Commands API. [#&#8203;4552](https://github.com/wasm-bindgen/wasm-bindgen/pull/4552) - Added `AbstractRange`, `StaticRange`, and `StaticRangeInit` interfaces. [#&#8203;4221](https://github.com/wasm-bindgen/wasm-bindgen/pull/4221) - Updated WebCodecs API to Working Draft 2026-01-29 and MediaRecorder API to 2025-04-17. Added `rotation` and `flip` to `VideoDecoderConfig`. [#&#8203;4411](https://github.com/wasm-bindgen/wasm-bindgen/pull/4411) - Added support for unstable WebIDL to override stable attribute types, allowing corrected type signatures behind `web_sys_unstable_apis`. Applied to `MouseEvent` coordinate attributes (`clientX`, `clientY`, `screenX`, `screenY`, `offsetX`, `offsetY`, `pageX`, `pageY`) which now return `f64` instead of `i32` when unstable APIs are enabled, per the CSSOM View spec draft. [#&#8203;4935](https://github.com/wasm-bindgen/wasm-bindgen/pull/4935) - Added support for unstable WebIDL to override stable method return types. This enables User Timing Level 3 APIs where `Performance.mark()` and `Performance.measure()` return `PerformanceMark` and `PerformanceMeasure` respectively (instead of `undefined`) when `web_sys_unstable_apis` is enabled. Also added `PerformanceMarkOptions`, `PerformanceMeasureOptions`, and the `detail` attribute on marks/measures. [#&#8203;3734](https://github.com/wasm-bindgen/wasm-bindgen/pull/3734) - Added non-standard `mode` option for `FileSystemFileHandle.createSyncAccessHandle()`. Also improved WebIDL generator to track stability at the signature level, allowing stable methods to have unstable overloads. [#&#8203;4928](https://github.com/wasm-bindgen/wasm-bindgen/issues/4928) - Updated WebGPU bindings to the February 2026 spec. Dictionary fields with union types now generate multiple type-safe setters (e.g. `set_resource_gpu_sampler()`, `set_resource_gpu_texture_view()`) alongside a deprecated fallback setter. Sequence arguments in unstable APIs now use typed slices (`&[T]`) instead of `&JsValue`. Fixed inner string enum types to use `JsString` in generic positions, added `BigInt` to builtin identifiers, and fixed dictionary field feature gates to not over-constrain getters with setter type requirements. [#&#8203;4955](https://github.com/wasm-bindgen/wasm-bindgen/pull/4955) - Improved dictionary union type expansion: stable fallback setters are no longer deprecated, and unstable builder methods now use the first typed variant instead of `&JsValue`. Dictionaries with required union fields now generate expanded constructors for each variant (e.g. `new()`, `new_with_gpu_texture_view()`), with duplicate-signature variants elided. [#&#8203;4966](https://github.com/wasm-bindgen/wasm-bindgen/pull/4966) ##### Changed - Increased externref stack size from 128 to 1024 slots to prevent "table index is out of bounds" errors in applications with deep call stacks or many concurrent async operations. [#&#8203;4951](https://github.com/wasm-bindgen/wasm-bindgen/pull/4951) - `Closure::new()`, `Closure::once()`, and related methods now require `UnwindSafe` bounds on closures when building with `panic=unwind`. New `_aborting` variants (`new_aborting()`, `once_aborting()`, etc.) are provided for closures that don't need panic catching and want to avoid the `UnwindSafe` requirement. [#&#8203;4893](https://github.com/wasm-bindgen/wasm-bindgen/pull/4893) - `global` does not use the unsafe-eval `new Function` trick anymore allowing to have CSP strict compliant packages with `wasm-bindgen`. [#&#8203;4910](https://github.com/wasm-bindgen/wasm-bindgen/pull/4910) - `eval` and `Function` constructors are now gated behind the `unsafe-eval` feature. [#&#8203;4914](https://github.com/wasm-bindgen/wasm-bindgen/pull/4914) ##### Fixed - Fixed incorrect JS export names when LLVM merges identical functions at `opt-level >= 2`. [#&#8203;4946](https://github.com/wasm-bindgen/wasm-bindgen/issues/4946) - Fixed incorrect `Closure` adapter deduplication when wasm-ld's Identical Code Folding merges invoke functions for different closure types into the same export. [#&#8203;4953](https://github.com/wasm-bindgen/wasm-bindgen/issues/4953) - Fixed `ReferenceError` when using Rust struct names that conflict with JS builtins (e.g., `Array`). The constructor now correctly uses the aliased `FinalizationRegistry` identifier. [#&#8203;4932](https://github.com/wasm-bindgen/wasm-bindgen/pull/4932) - Fixed `Element::scroll_top()`, `Element::scroll_left()`, and `HtmlElement::scroll_top()` to return `f64` instead of `i32` per the CSSOM View spec, behind `web_sys_unstable_apis`. The stable API is unchanged for backwards compatibility. [#&#8203;4525](https://github.com/wasm-bindgen/wasm-bindgen/issues/4525) - Added spec-compliant `i32` parameter types for `CanvasRenderingContext2d::get_image_data()` and `put_image_data()` (and `OffscreenCanvasRenderingContext2d` equivalents) behind `web_sys_unstable_apis`. Per the HTML spec, `getImageData` and `putImageData` use `long` (i32) for coordinates, not `double` (f64). The stable API is unchanged for backwards compatibility. [#&#8203;1920](https://github.com/wasm-bindgen/wasm-bindgen/pull/1920) - Fixed incorrect `#[cfg(web_sys_unstable_apis)]` gating on stable method signatures that share a WebIDL operation with unstable overloads. For example, `Clipboard.read()` (0 args) was incorrectly gated as unstable because the unstable `read(options)` overload existed. The WebIDL code generator now uses an authoritative expansion model where stable and unstable signature sets are built independently and compared: identical signatures merge (no gate), stable-only signatures get `not(unstable)`, and unstable-only signatures get `unstable`. Also adds typed generics (`Promise<T>`, `Array<T>`, `Function<fn(...)>`, etc.) to all unstable API methods, and adds missing `PhotoCapabilities`, `PhotoSettings`, `MediaSettingsRange`, `Point2D`, `RedEyeReduction`, `FillLightMode`, and `MeteringMode` types from the W3C Image Capture spec. [#&#8203;4964](https://github.com/wasm-bindgen/wasm-bindgen/pull/4964) - Fixed `unfulfilled_lint_expectations` warnings when using `#[expect(...)]` attributes on functions annotated with `#[wasm_bindgen]`. The `#[expect]` attributes are now converted to `#[allow]` in generated code to prevent spurious warnings. [#&#8203;4409](https://github.com/wasm-bindgen/wasm-bindgen/pull/4409) ### [`v0.2.108`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02108) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.107...0.2.108) ##### Fixed - Fixed regression where `panic=unwind` builds for non-Wasm targets would trigger `UnwindSafe` assertions. [#&#8203;4903](https://github.com/wasm-bindgen/wasm-bindgen/pull/4903) ### [`v0.2.107`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02107) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.106...0.2.107) ##### Added - Support catching panics, and raising JS Exceptions for them, when building with panic=unwind on nightly, with the `std` feature. [#&#8203;4790](https://github.com/wasm-bindgen/wasm-bindgen/pull/4790) - Added support for passing `&[JsValue]` slices from Rust to JavaScript functions. [#&#8203;4872](https://github.com/wasm-bindgen/wasm-bindgen/pull/4872) - Added `private` attribute on exported types to allow generating exports and structs as implicit internal exported types for function arguments and returns, without exporting them on the public interface. [#&#8203;4788](https://github.com/wasm-bindgen/wasm-bindgen/pull/4788) - Added `iter_custom` and `iter_custom_future` for bench to do custom measurements. [#&#8203;4841](https://github.com/wasm-bindgen/wasm-bindgen/pull/4841) - Added [Window Management API](https://w3c.github.io/window-management/). [#&#8203;4843](https://github.com/wasm-bindgen/wasm-bindgen/pull/4843) ##### Changed - Changed WASM import namespace from `wbg` to `./{name}_bg.js` for `web` and `no-modules` targets, aligning with `bundler` and `experimental-nodejs-module` to enable cross-target WASM sharing. [#&#8203;4850](https://github.com/rustwasm/wasm-bindgen/pull/4850) - Replace `WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_OUT` and `WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_PREFIX` with parsing `LLVM_PROFILE_FILE` analogous to Rust test coverage. [#&#8203;4367](https://github.com/wasm-bindgen/wasm-bindgen/pull/4367) - Typescript custom sections sorted alphabetically across codegen-units. [#&#8203;4738](https://github.com/wasm-bindgen/wasm-bindgen/pull/4738) - Optimized demangling performance by removing redundant string formatting [#&#8203;4867](https://github.com/wasm-bindgen/wasm-bindgen/pull/4867) - Changed WASM import namespace from `__wbindgen_placeholder__` to `./{name}_bg.js` for `node` targets, aligning with `bundler` and `experimental-nodejs-module` to enable cross-target WASM sharing. [#&#8203;4869](https://github.com/rustwasm/wasm-bindgen/pull/4869) - Changed WASM import namespace from `__wbindgen_placeholder__` to `./{name}_bg.js` for `deno` and `module` targets, aligning with `node`, `bundler` and `experimental-nodejs-module` to enable cross-target WASM sharing. [#&#8203;4871](https://github.com/rustwasm/wasm-bindgen/pull/4871) - Consolidate JavaScript glue generation Move target-specific JS emission into a single finalize phase, reducing branching and making the generated output more consistent across targets. - Centralize JS output assembly in a single finalize phase (exports/imports/wasm loading). - Make `--target experimental-nodejs-module` emit one JS entrypoint (no separate `_bg.js`). - Ensure Node (CJS/ESM) and bundler entrypoints only expose public exports (no internal import shims). - Add `/* @&#8203;ts-self-types="./<name>.d.ts" */` to JS entrypoints for JSR/Deno resolution. - Refresh reference test fixtures. [#&#8203;4879](https://github.com/wasm-bindgen/wasm-bindgen/pull/4879) - Forward worker errors to test output in the test runner. [#&#8203;4855](https://github.com/wasm-bindgen/wasm-bindgen/pull/4855) ##### Fixed - Fix: Include doc comments in TypeScript definitions for classes [#&#8203;4858](https://github.com/wasm-bindgen/wasm-bindgen/pull/4858) - Interpreter: support try\_table blocks [#&#8203;4862](https://github.com/wasm-bindgen/wasm-bindgen/pull/4862) - Interpreter: Stop interpretting descriptor after `__wbindgen_describe_cast` [#&#8203;4862](https://github.com/wasm-bindgen/wasm-bindgen/pull/4898) ### [`v0.2.106`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02106) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.105...0.2.106) ##### Added - New MSRV policy, and bump of the MSRV fo 1.71. [#&#8203;4801](https://github.com/wasm-bindgen/wasm-bindgen/pull4801) - Added `CSS Custom Highlight` API to `web-sys`. [#&#8203;4792](https://github.com/wasm-bindgen/wasm-bindgen/pull/4792) - Added typed `this` support in the first argument in free function exports via a new `#[wasm_bindgen(this)]` attribute. [#&#8203;4757](https://github.com/wasm-bindgen/wasm-bindgen/pull/4757) - Added `reexport` attribute for imports to support re-exporting imported types, with optional renaming. [#&#8203;4759](https://github.com/wasm-bindgen/wasm-bindgen/pull/4759) - Added `js_namespace` attribute on exported types, mirroring the import semantics to enable arbitrarily nested exported interface objects. [#&#8203;4744](https://github.com/wasm-bindgen/wasm-bindgen/pull/4744) - Added 'container' attribute to `ScrollIntoViewOptions` [#&#8203;4806](https://github.com/wasm-bindgen/wasm-bindgen/pull/4806) - Updated and refactored output generation to use alphabetical ordering of declarations. [#&#8203;4813](https://github.com/wasm-bindgen/wasm-bindgen/pull/4813) - Added benchmark support to `wasm-bindgen-test`. [#&#8203;4812](https://github.com/wasm-bindgen/wasm-bindgen/pull/4812) [#&#8203;4823](https://github.com/wasm-bindgen/wasm-bindgen/pull/4823) ##### Fixed - Fixed node test harness getting stuck after tests completed. [#&#8203;4776](https://github.com/wasm-bindgen/wasm-bindgen/pull/4776) - Quote names containing colons in generated .d.ts. [#&#8203;4488](https://github.com/wasm-bindgen/wasm-bindgen/pull/4488) - Fixes TryFromJsValue for structs JsValue stack corruption on failure. [#&#8203;4786](https://github.com/wasm-bindgen/wasm-bindgen/pull/4786) - Fixed `wasm-bindgen-test-runner` outputting empty line when using the `--list` option. In particular, `cargo-nextest` now works correctly. [#&#8203;4803](https://github.com/wasm-bindgen/wasm-bindgen/pull/4803) - It now works to build with `-Cpanic=unwind`. [#&#8203;4796](https://github.com/wasm-bindgen/wasm-bindgen/pull/4796) [#&#8203;4783](https://github.com/wasm-bindgen/wasm-bindgen/pull/4783) [#&#8203;4782](https://github.com/wasm-bindgen/wasm-bindgen/pull/4782) - Fixed duplicate symbols caused by enabling v0 mangling. [#&#8203;4822](https://github.com/wasm-bindgen/wasm-bindgen/pull/4822) - Fixed a multithreaded wasm32+atomics race where `Atomics.waitAsync` promise callbacks could call `run` without waking first, causing sporadic panics. [#&#8203;4821](https://github.com/wasm-bindgen/wasm-bindgen/pull/4821) ##### Removed ### [`v0.2.105`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02105) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.104...0.2.105) ##### Added - Added `Math::PI` binding to `js_sys`, exposing the ECMAScript `Math.PI` constant. [#&#8203;4748](https://github.com/wasm-bindgen/wasm-bindgen/pull/4748) - Added ability to use `--keep-lld-exports` in `wasm-bindgen-test-runner` by setting the `WASM_BINDGEN_KEEP_LLD_EXPORTS` environment variable. [#&#8203;4736](https://github.com/wasm-bindgen/wasm-bindgen/pull/4736) - Added `CookieStore` API. [#&#8203;4706](https://github.com/wasm-bindgen/wasm-bindgen/pull/4706) - Added `run_cli_with_args` library functions to all `wasm_bindgen_cli` entrypoints. [#&#8203;4710](https://github.com/wasm-bindgen/wasm-bindgen/pull/4710) - Added `get_raw` and `set_raw` for `WebAssembly.Table`. [#&#8203;4701](https://github.com/wasm-bindgen/wasm-bindgen/pull/4701) - Added `new_with_value` and `grow_with_value` for `WebAssembly.Table`. [#&#8203;4698](https://github.com/wasm-bindgen/wasm-bindgen/pull/4698) - Added better support for async stack traces when building in debug mode. [#&#8203;4711](https://github.com/wasm-bindgen/wasm-bindgen/pull/4711) - Extended support for `TryFromJsValue` trait implementations. [#&#8203;4714](https://github.com/wasm-bindgen/wasm-bindgen/pull/4714) - New `JsValue.is_null_or_undefined()` method and intrinsic. [#&#8203;4751](https://github.com/wasm-bindgen/wasm-bindgen/pull/4751) - Support for `Option<JsValue>` in function arguments and return. [#&#8203;4752](https://github.com/wasm-bindgen/wasm-bindgen/pull/4752) - Support for `WASM_BINDGEN_KEEP_TEST_BUILD=1` environment variable to retain build files when using the test runner. [#&#8203;4758](https://github.com/wasm-bindgen/wasm-bindgen/pull/4758) ##### Fixed - Fixed multithreading JS output for targets `bundler`, `deno` and `module`. [#&#8203;4685](https://github.com/wasm-bindgen/wasm-bindgen/pull/4685) - Fixed `TextDe/Encoder` detection for audio worklet use-cases. [#&#8203;4703](https://github.com/wasm-bindgen/wasm-bindgen/pull/4703) - Fixed post-processing failures in case Std has debug assertions enabled. [#&#8203;4705](https://github.com/wasm-bindgen/wasm-bindgen/pull/4705) - Fixed JS memory leak in `wasm_bindgen::Closure`. [#&#8203;4709](https://github.dev/wasm-bindgen/wasm-bindgen/pull/4709) - Fixed warning when using `#[wasm_bindgen(wasm_bindgen=xxx)]` on struct. [#&#8203;4715](https://github.dev/wasm-bindgen/wasm-bindgen/pull/4715) ##### Removed - Internal crate `wasm-bindgen-backend` will no longer be published. [#&#8203;4696](https://github.com/wasm-bindgen/wasm-bindgen/pull/4696) ### [`v0.2.104`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02104) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.103...0.2.104) ##### Added - Added bindings for `WeakRef`. [#&#8203;4659](https://github.com/wasm-bindgen/wasm-bindgen/pull/4659) - Support `Symbol.dispose` methods by default, when it is supported in the environment. [#&#8203;4666](https://github.com/wasm-bindgen/wasm-bindgen/pull/4666) - Added `aarch64-unknown-linux-musl` release artifacts. [#&#8203;4668](https://github.com/wasm-bindgen/wasm-bindgen/pull/4668) ##### Changed - Unconditionally use the global `TextEncoder`/`TextDecoder` for string encoding/decoding. The Node.js output now requires a minimum of Node.js v11. [#&#8203;4670](https://github.com/wasm-bindgen/wasm-bindgen/pull/4670) - Deprecate the `msrv` crate feature. MSRV detection is now always on. [#&#8203;4675](https://github.com/wasm-bindgen/wasm-bindgen/pull/4675) ##### Fixed - Fixed wasm-bindgen-cli's `encode_into` argument not working. [#&#8203;4663](https://github.com/wasm-bindgen/wasm-bindgen/pull/4663) - Fixed a bug in `--experimental-reset-state-function` support for heap reset. [#&#8203;4665](https://github.com/wasm-bindgen/wasm-bindgen/pull/4665) - Fixed compilation failures on Rust v1.82 and v1.83. [#&#8203;4675](https://github.com/wasm-bindgen/wasm-bindgen/pull/4675) *** ### [`v0.2.103`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02103) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.102...0.2.103) ##### Fixed - Fixed incorrect function mapping during post-processing. [#&#8203;4656](https://github.com/wasm-bindgen/wasm-bindgen/pull/4656) *** ### [`v0.2.102`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02102) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.101...0.2.102) ##### Added - Added `DocumentOrShadowRoot.adoptedStyleSheets`. [#&#8203;4625](https://github.com/wasm-bindgen/wasm-bindgen/pull/4625) - Added support for arguments with spaces using shell-style quoting in webdriver `*_ARGS` environment variables to `wasm-bindgen-test`. [#&#8203;4433](https://github.com/wasm-bindgen/wasm-bindgen/pull/4433) - Added ability to determine WebDriver JSON config location via `WASM_BINDGEN_TEST_WEBDRIVER_JSON` environment variable to `wasm-bindgen-test`. [#&#8203;4434](https://github.com/wasm-bindgen/wasm-bindgen/pull/4434) - Generate DWARF for tests by default. See the [guide on debug information] for more details. [#&#8203;4635](https://github.com/wasm-bindgen/wasm-bindgen/pull/4635) [guide on debug information]: https://wasm-bindgen.github.io/wasm-bindgen/reference/debug-info.html - New `--target=module` target for outputting source phase imports. [#&#8203;4638](https://github.com/wasm-bindgen/wasm-bindgen/pull/4638) ##### Changed - Hidden deprecated options from the `wasm-bindgen --help` docs. [#&#8203;4646](https://github.com/wasm-bindgen/wasm-bindgen/pull/4646) ##### Fixed - Fixed wrong method names for `GestureEvent` bindings. [#&#8203;4615](https://github.com/wasm-bindgen/wasm-bindgen/pull/4615) - Fix crash caused by allocations during `TypedArray` interactions. [#&#8203;4622](https://github.com/wasm-bindgen/wasm-bindgen/pull/4622) *** ### [`v0.2.101`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02101) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.100...0.2.101) ##### Added - Added format and colorSpace support to VideoFrameCopyToOptions [#&#8203;4543](https://github.com/wasm-bindgen/wasm-bindgen/pull/4543) - Added support for the [`onbeforeinput`](https://developer.mozilla.org/en-US/docs/Web/API/Element/beforeinput_event) attribute. [#&#8203;4544](https://github.com/wasm-bindgen/wasm-bindgen/pull/4544) - `TypedArray::new_from_slice(&[T])` constructor that allows to create a JS-owned `TypedArray` from a Rust slice. [#&#8203;4555](https://github.com/wasm-bindgen/wasm-bindgen/pull/4555) - Added `Function::call4` and `Function::bind4` through `Function::call9` `Function::bind9` methods for calling and binding JavaScript functions with 4-9 arguments. [#&#8203;4572](https://github.com/wasm-bindgen/wasm-bindgen/pull/4572) - Added isPointInFill and isPointInStroke methods for the SVGGeometryElement idl. [#&#8203;4509](https://github.com/wasm-bindgen/wasm-bindgen/pull/4509) - Added unstable bindings for `GestureEvent`. [#&#8203;4589](https://github.com/wasm-bindgen/wasm-bindgen/pull/4589) - Stricter checks for `module`, `raw_module` and `inline_js` attributes applied to inapplicable items. [#&#8203;4522](https://github.com/wasm-bindgen/wasm-bindgen/pull/4522) - Add bindings for `PictureInPicture`. [#&#8203;4593](https://github.com/rustwasm/wasm-bindgen/pull/4593) - Added `bytes` method for the `Blob` idl [#&#8203;4506](https://github.com/wasm-bindgen/wasm-bindgen/pull/4506) - Add error message when export symbol is not found [#&#8203;4594](https://github.com/wasm-bindgen/wasm-bindgen/pull/4594) ##### Changed - Deprecate async constructors. [#&#8203;4402](https://github.com/rustwasm/wasm-bindgen/pull/4402) - The `size` argument to `GPUCommandEncoder.copyBufferToBuffer` is now optional. [#&#8203;4508](https://github.com/wasm-bindgen/wasm-bindgen/pull/4508) - MSRV of CLI tools bumped to v1.82. This does not affect libraries like `wasm-bindgen`, `js-sys` and `web-sys`! [#&#8203;4608](https://github.com/wasm-bindgen/wasm-bindgen/pull/4608) ##### Fixed - Detect more failure scenarios when retrieving the Wasm module. [#&#8203;4556](https://github.com/wasm-bindgen/wasm-bindgen/pull/4556) - Add a workaround for `TextDecoder` failing in older version of Safari when too many bytes are decoded through it over its lifetime. [#&#8203;4472](https://github.com/wasm-bindgen/wasm-bindgen/pull/4472) - `TypedArray::from(&[T])` now works reliably across memory reallocations. [#&#8203;4555](https://github.com/wasm-bindgen/wasm-bindgen/pull/4555) - Fix incorrect memory loading and storing assertions during post-processing. [#&#8203;4554](https://github.com/wasm-bindgen/wasm-bindgen/pull/4554) - Fix test `--exact` option not working as expected. [#&#8203;4549](https://github.com/wasm-bindgen/wasm-bindgen/pull/4549) - Fix tables being removed even though they are used by stack closures. [#&#8203;4119](https://github.com/wasm-bindgen/wasm-bindgen/pull/4564) - Skip `__wasm_call_ctors` which we don't want to interpret. [#&#8203;4562](https://github.com/wasm-bindgen/wasm-bindgen/pull/4562) - Fix infinite recursion caused by the lack of proc-macro hygiene. [#&#8203;4601](https://github.com/wasm-bindgen/wasm-bindgen/pull/4601) - Fix running coverage with no\_modules. [#&#8203;4604](https://github.com/wasm-bindgen/wasm-bindgen/pull/4604) - Fix proc-macro hygiene with `core`. [#&#8203;4606](https://github.com/wasm-bindgen/wasm-bindgen/pull/4606) ##### Removed - Crates intended purely for internal consumption by the wasm-bindgen CLI will no longer be published: [#&#8203;4608](https://github.com/wasm-bindgen/wasm-bindgen/pull/4608) - `wasm-bindgen-externref-xform` - `wasm-bindgen-multi-value-xform` - `wasm-bindgen-threads-xform` - `wasm-bindgen-wasm-conventions` - `wasm-bindgen-wasm-interpreter` *** ### [`v0.2.100`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02100) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.99...0.2.100) Released 2025-01-12 ##### Added - Add attributes to overwrite return (\`\`unchecked\_return\_type`) and parameter types (`unchecked\_param\_type`), descriptions (`return\_description`and`param\_description`) as well as parameter names (`js\_name\`) for exported functions and methods. See the guide for more details. [#&#8203;4394](https://github.com/rustwasm/wasm-bindgen/pull/4394) - Add a `copy_to_uninit()` method to all `TypedArray`s. It takes `&mut [MaybeUninit<T>]` and returns `&mut [T]`. [#&#8203;4340](https://github.com/rustwasm/wasm-bindgen/pull/4340) - Add test coverage support for Node.js. [#&#8203;4348](https://github.com/rustwasm/wasm-bindgen/pull/4348) - Support importing memory and using `wasm_bindgen::module()` in Node.js. [#&#8203;4349](https://github.com/rustwasm/wasm-bindgen/pull/4349) - Add `--list`, `--ignored`, `--exact` and `--nocapture` to `wasm-bindgen-test-runner`, analogous to `cargo test`. [#&#8203;4356](https://github.com/rustwasm/wasm-bindgen/pull/4356) - Add bindings to `Date.to_locale_time_string_with_options`. [#&#8203;4384](https://github.com/rustwasm/wasm-bindgen/pull/4384) - `#[wasm_bindgen]` now correctly applies `#[cfg(...)]`s in `struct`s. [#&#8203;4351](https://github.com/rustwasm/wasm-bindgen/pull/4351) ##### Changed - Optional parameters are now typed as `T | undefined | null` to reflect the actual JS behavior. [#&#8203;4188](https://github.com/rustwasm/wasm-bindgen/pull/4188) - Adding `getter`, `setter`, and `constructor` methods to enums now results in a compiler error. This was previously erroneously allowed and resulted in invalid JS code gen. [#&#8203;4278](https://github.com/rustwasm/wasm-bindgen/pull/4278) - Handle stuck and failed WebDriver processes when re-trying to start them. [#&#8203;4340](https://github.com/rustwasm/wasm-bindgen/pull/4340) - Align test output closer to native `cargo test`. [#&#8203;4358](https://github.com/rustwasm/wasm-bindgen/pull/4358) - Error if URL in `<WEBDRIVER>_REMOTE` can't be parsed instead of just ignoring it. [#&#8203;4362](https://github.com/rustwasm/wasm-bindgen/pull/4362) - Remove `WASM_BINDGEN_THREADS_MAX_MEMORY` and `WASM_BINDGEN_THREADS_STACK_SIZE`. The maximum memory size can be set via `-Clink-arg=--max-memory=<size>`. The stack size of a thread can be set when initializing the thread via the `default` function. [#&#8203;4363](https://github.com/rustwasm/wasm-bindgen/pull/4363) - `console.*()` calls in tests are now always intercepted by default. To show them use `--nocapture`. When shown they are always printed in-place instead of after test results, analogous to `cargo test`. [#&#8203;4356](https://github.com/rustwasm/wasm-bindgen/pull/4356) ##### Fixed - Fixed using [JavaScript keyword](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#keywords) as identifiers not being handled correctly. [#&#8203;4329](https://github.com/rustwasm/wasm-bindgen/pull/4329) - Using JS keywords as `struct` and `enum` names will now error at compile time, instead of causing invalid JS code gen. - Using JS keywords that are not valid to call or access properties on will now error at compile time, instead of causing invalid JS code gen if used as: 1. The first part of a `js_namespace` on imports. 2. The name of an imported type or constant if the type or constant does not have a `js_namespace` or `module` attribute. 3. The name of an imported function if the function is not a method and does not have a `js_namespace` or `module` attribute. - Using JS keywords on imports in places other than the above will no longer cause the keywords to be escaped as `_{keyword}`. * Fixed passing large arrays into Rust failing because of internal memory allocations invalidating the memory buffer. [#&#8203;4353](https://github.com/rustwasm/wasm-bindgen/pull/4353) * Pass along an `ignore` attribute to `unsupported` tests. [#&#8203;4360](https://github.com/rustwasm/wasm-bindgen/pull/4360) * Use OS provided temporary directory for tests instead of Cargo's `target` directory. [#&#8203;4361](https://github.com/rustwasm/wasm-bindgen/pull/4361) * Error if URL in `<WEBDRIVER>_REMOTE` can't be parsed. [#&#8203;4362](https://github.com/rustwasm/wasm-bindgen/pull/4362) * Internal functions are now removed instead of invalidly imported if they are unused. [#&#8203;4366](https://github.com/rustwasm/wasm-bindgen/pull/4366) * Fixed `no_std` support for all APIs in `web-sys`. [#&#8203;4378](https://github.com/rustwasm/wasm-bindgen/pull/4378) * Prevent generating duplicate exports for closure conversions. [#&#8203;4380](https://github.com/rustwasm/wasm-bindgen/pull/4380) *** ### [`v0.2.99`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#0299) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.98...0.2.99) Released 2024-12-07 ##### Fixed - Mark `wasm-bindgen` v0.2.98 only compatible with `wasm-bindgen-cli` of the same version. [#&#8203;4331](https://github.com/rustwasm/wasm-bindgen/pull/4331) *** ### [`v0.2.98`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#0298) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.97...0.2.98) Released 2024-12-07 ##### Added - Add support for compiling with `atomics` for Node.js. [#&#8203;4318](https://github.com/rustwasm/wasm-bindgen/pull/4318) - Add `WASM_BINDGEN_TEST_DRIVER_TIMEOUT` environment variable to control the timeout to start and connect to the test driver. [#&#8203;4320](https://github.com/rustwasm/wasm-bindgen/pull/4320) - Add support for number slices of type `MaybeUninit<T>`. [#&#8203;4316](https://github.com/rustwasm/wasm-bindgen/pull/4316) ##### Changed - Remove `once_cell/critical-section` requirement for `no_std` with atomics. [#&#8203;4322](https://github.com/rustwasm/wasm-bindgen/pull/4322) - `static FOO: Option<T>` now returns `None` if undeclared in JS instead of throwing an error in JS. [#&#8203;4319](https://github.com/rustwasm/wasm-bindgen/pull/4319) ##### Fixed - Fix macro-hygiene for calls to `std::thread_local!`. [#&#8203;4315](https://github.com/rustwasm/wasm-bindgen/pull/4315) - Fix feature resolver version 1 compatibility. [#&#8203;4327](https://github.com/rustwasm/wasm-bindgen/pull/4327) *** ### [`v0.2.97`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#0297) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.96...0.2.97) Released 2024-11-30 ##### Fixed - Fixed `js-sys` and `wasm-bindgen-futures` relying on internal paths of `wasm-bindgen` that are not crate feature additive. [#&#8203;4305](https://github.com/rustwasm/wasm-bindgen/pull/4305) *** ### [`v0.2.96`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#0296) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.95...0.2.96) Released 2024-11-29 ##### Added - Added support for the [`HTMLOrSVGElement`](https://html.spec.whatwg.org/#htmlorsvgelement) `mixin`, which is used for all interfaces deriving from `Element`. [#&#8203;4143](https://github.com/rustwasm/wasm-bindgen/pull/4143) - Added bindings for [MathMLElement](https://www.w3.org/TR/MathML3). [#&#8203;4143](https://github.com/rustwasm/wasm-bindgen/pull/4143) - Added JSDoc type annotations to C-style enums. [#&#8203;4192](https://github.com/rustwasm/wasm-bindgen/pull/4192) - Added support for C-style enums with negative discriminants. [#&#8203;4204](https://github.com/rustwasm/wasm-bindgen/pull/4204) - Added bindings for `MediaStreamTrack.getCapabilities`. [#&#8203;4236](https://github.com/rustwasm/wasm-bindgen/pull/4236) - Added WASM ABI support for `u128` and `i128` [#&#8203;4222](https://github.com/rustwasm/wasm-bindgen/pull/4222) - Added support for the `wasm32v1-none` target. [#&#8203;4277](https://github.com/rustwasm/wasm-bindgen/pull/4277) - Added support for `no_std` to `js-sys`, `web-sys`, `wasm-bindgen-futures` and `wasm-bindgen-test`. [#&#8203;4277](https://github.com/rustwasm/wasm-bindgen/pull/4277) - Added support for `no_std` to `link_to!`, `static_string` (via `thread_local_v2`) and `throw`. [#&#8203;4277](https://github.com/rustwasm/wasm-bindgen/pull/4277) - Added environment variables to configure tests: `WASM_BINDGEN_USE_BROWSER`, `WASM_BINDGEN_USE_DEDICATED_WORKER`, `WASM_BINDGEN_USE_SHARED_WORKER` `WASM_BINDGEN_USE_SERVICE_WORKER`, `WASM_BINDGEN_USE_DENO` and `WASM_BINDGEN_USE_NODE_EXPERIMENTAL`. The use of `wasm_bindgen_test_configure!` will overwrite any environment variable. [#&#8203;4295](https://github.com/rustwasm/wasm-bindgen/pull/4295) ##### Changed - String enums now generate private TypeScript types but only if used. [#&#8203;4174](https://github.com/rustwasm/wasm-bindgen/pull/4174) - Remove unnecessary JSDoc type annotations from generated `.d.ts` files [#&#8203;4187](https://github.com/rustwasm/wasm-bindgen/pull/4187) - Deprecate `autofocus`, `tabIndex`, `focus()` and `blur()` bindings in favor of bindings on the inherited `Element` class. [#&#8203;4143](https://github.com/rustwasm/wasm-bindgen/pull/4143) - Optimized ABI performance for `Option<{i32,u32,isize,usize,f32,*const T,*mut T}>`. [#&#8203;4183](https://github.com/rustwasm/wasm-bindgen/pull/4183) - Deprecate `--reference-types` in favor of automatic target feature detection. [#&#8203;4237](https://github.com/rustwasm/wasm-bindgen/pull/4237) - `wasm-bindgen-test-runner` now tries to restart the WebDriver on failure, instead of spending its timeout period trying to connect to a non-existing WebDriver. [#&#8203;4267](https://github.com/rustwasm/wasm-bindgen/pull/4267) - Deprecated `#[wasm_bindgen(thread_local)]` in favor of `#[wasm_bindgen(thread_local_v2)]`, which creates a `wasm_bindgen::JsThreadLocal`. It is similar to `std::thread::LocalKey` but supports `no_std`. [#&#8203;4277](https://github.com/rustwasm/wasm-bindgen/pull/4277) - Updated the WebGPU API to the current draft as of 2024-11-22. [#&#8203;4290](https://github.com/rustwasm/wasm-bindgen/pull/4290) - Improved error messages for `self` arguments in invalid positions. [#&#8203;4276](https://github.com/rustwasm/wasm-bindgen/pull/4276) ##### Fixed - Fixed methods with `self: &Self` consuming the object. [#&#8203;4178](https://github.com/rustwasm/wasm-bindgen/pull/4178) - Fixed unused string enums generating JS values. [#&#8203;4193](https://github.com/rustwasm/wasm-bindgen/pull/4193) - Fixed triggering lints in testing facilities. [#&#8203;4195](https://github.com/rustwasm/wasm-bindgen/pull/4195) - Fixed `#[should_panic]` not working with `#[wasm_bindgen_test(unsupported = ...)]`. [#&#8203;4196](https://github.com/rustwasm/wasm-bindgen/pull/4196) - Fixed potential `null` error when using `JsValue::as_debug_string()`. [#&#8203;4192](https://github.com/rustwasm/wasm-bindgen/pull/4192) - Fixed generated types when the getter and setter of a property have different types. [#&#8203;4202](https://github.com/rustwasm/wasm-bindgen/pull/4202) - Fixed generated types when a static getter/setter has the same name as an instance getter/setter. [#&#8203;4202](https://github.com/rustwasm/wasm-bindgen/pull/4202) - Fixed invalid TypeScript return types for multivalue signatures. [#&#8203;4210](https://github.com/rustwasm/wasm-bindgen/pull/4210) - Only emit `table.fill` instructions if the bulk-memory proposal is enabled. [#&#8203;4237](https://github.com/rustwasm/wasm-bindgen/pull/4237) - Fixed calls to `JsCast::instanceof()` not respecting JavaScript namespaces. [#&#8203;4241](https://github.com/rustwasm/wasm-bindgen/pull/4241) - Fixed imports for functions using `this` and late binding. [#&#8203;4225](https://github.com/rustwasm/wasm-bindgen/pull/4225) - Don't expose non-functioning implicit constructors to classes when none are provided. [#&#8203;4282](https://github.com/rustwasm/wasm-bindgen/pull/4282) *** ### [`v0.2.95`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#0295) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.94...0.2.95) Released 2024-10-10 ##### Added - Added support for implicit discriminants in enums. [#&#8203;4152](https://github.com/rustwasm/wasm-bindgen/pull/4152) - Added support for `Self` in complex type expressions in methods. [#&#8203;4155](https://github.com/rustwasm/wasm-bindgen/pull/4155) ##### Changed - String enums are no longer generate TypeScript types. [#&#8203;4174](https://github.com/rustwasm/wasm-bindgen/pull/4174) ##### Fixed - Fixed generated setters from WebIDL interface attributes binding to wrong JS method names. [#&#8203;4170](https://github.com/rustwasm/wasm-bindgen/pull/4170) - Fix string enums showing up in JS documentation and TypeScript bindings without corresponding types. [#&#8203;4175](https://github.com/rustwasm/wasm-bindgen/pull/4175) *** ### [`v0.2.94`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#0294-YANKED) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.93...0.2.94) Released 2024-10-09 ##### Added - Added support for the WebAssembly `Tail Call` proposal. [#&#8203;4111](https://github.com/rustwasm/wasm-bindgen/pull/4111) - Add bindings for `RTCPeerConnection.setConfiguration(RTCConfiguration)` method. [#&#8203;4105](https://github.com/rustwasm/wasm-bindgen/pull/4105) - Add bindings to `RTCRtpTransceiverDirection.stopped`. [#&#8203;4102](https://github.com/rustwasm/wasm-bindgen/pull/4102) - Added experimental support for `Symbol.dispose` via `WASM_BINDGEN_EXPERIMENTAL_SYMBOL_DISPOSE`. [#&#8203;4118](https://github.com/rustwasm/wasm-bindgen/pull/4118) - Added bindings for the draft [WebRTC Encoded Transform](https://www.w3.org/TR/webrtc-encoded-transform) spec. [#&#8203;4125](https://github.com/rustwasm/wasm-bindgen/pull/4125) - Added `Debug` implementation to `JsError`. [#&#8203;4136](https://github.com/rustwasm/wasm-bindgen/pull/4136) - Added support for `js_name` and `skip_typescript` attributes for string enums. [#&#8203;4147](https://github.com/rustwasm/wasm-bindgen/pull/4147) - Added `unsupported` crate to `wasm_bindgen_test(unsupported = test)` as a way of running tests on non-Wasm targets as well. [#&#8203;4150](https://github.com/rustwasm/wasm-bindgen/pull/4150) - Added additional bindings for methods taking buffer view types (e.g. `&[u8]`) with corresponding JS types (e.g. `Uint8Array`). [#&#8203;4156](https://github.com/rustwasm/wasm-bindgen/pull/4156) - Added additional bindings for setters from WebIDL interface attributes with applicaple parameter types of just `JsValue`. [#&#8203;4156](https://github.com/rustwasm/wasm-bindgen/pull/4156) ##### Changed - Implicitly enable reference type and multivalue transformations if the module already makes use of the corresponding target features. [#&#8203;4133](https://github.com/rustwasm/wasm-bindgen/pull/4133) - Updated Gamepad API. [#&#8203;4134](https://github.com/rustwasm/wasm-bindgen/pull/4134) - Deprecated `Gamepad::display_id` and `GamepadHapticActuator::type_`. [#&#8203;4134](https://github.com/rustwasm/wasm-bindgen/pull/4134) - Removed `GamepadAxisMoveEvent`, `GamepadAxisMoveEventInit`, `GamepadButtonEvent`, `GamepadButtonEventInit` and `GamepadServiceTest`, which were seemingly never implemented by any JS environment. [#&#8203;4134](https://github.com/rustwasm/wasm-bindgen/pull/4134) - Changed `TextDecoder.decode()` `input` parameter type from `&mut [u8]` to `&[u8]`. [#&#8203;4141](https://github.com/rustwasm/wasm-bindgen/pull/4141) - Updated the WebGPU API to the current draft as of 2024-10-07. [#&#8203;4145](https://github.com/rustwasm/wasm-bindgen/pull/4145) - Deprecated generated setters from WebIDL interface attribute taking `JsValue` in favor of newer bindings with specific parameter types. [#&#8203;4156](https://github.com/rustwasm/wasm-bindgen/pull/4156) ##### Fixed - Fixed linked modules emitting snippet files when not using `--split-linked-modules`. [#&#8203;4066](https://github.com/rustwasm/wasm-bindgen/pull/4066) - Fixed incorrect deprecation warning when passing no parameter into `default()` (`init()`) or `initSync()`. [#&#8203;4074](https://github.com/rustwasm/wasm-bindgen/pull/4074) - Fixed many proc-macro generated `impl` blocks missing `#[automatically_derived]`, affecting test coverage. [#&#8203;4078](https://github.com/rustwasm/wasm-bindgen/pull/4078) - Fixed negative `BigInt` values being incorrectly formatted with two minus signs. [#&#8203;4082](https://github.com/rustwasm/wasm-bindgen/pull/4082) [#&#8203;4088](https://github.com/rustwasm/wasm-bindgen/pull/4088) - Fixed emitted `package.json` structure to correctly specify its dependencies [#&#8203;4091](https://github.com/rustwasm/wasm-bindgen/pull/4091) - Fixed returning `Option<Enum>` now correctly has the `| undefined` type in TS bindings. [#&#8203;4137](https://github.com/rustwasm/wasm-bindgen/pull/4137) - Fixed enum variant name collisions with object prototype fields. [#&#8203;4137](https://github.com/rustwasm/wasm-bindgen/pull/4137) - Fixed multiline doc comment alignment and remove empty ones entirely. [#&#8203;4135](https://github.com/rustwasm/wasm-bindgen/pull/4135) - Fixed `experimental-nodejs-module` target when used with `#[wasm_bindgen(start)]`. [#&#8203;4093](https://github.com/rustwasm/wasm-bindgen/pull/4093) - Fixed error when importing very large JS files. [#&#8203;4146](https://github.com/rustwasm/wasm-bindgen/pull/4146) - Specify `"type": "module"` when deploying to nodejs-module [#&#8203;4092](https://github.com/rustwasm/wasm-bindgen/pull/4092) - Fixed string enums not generating TypeScript types. [#&#8203;4147](https://github.com/rustwasm/wasm-bindgen/pull/4147) - Bindings that take buffer view types (e.g. `&[u8]`) as parameters will now correctly return a `Result` when they might not support a backing `SharedArrayBuffer`. This only applies to new and unstable APIs, which won't cause a breaking in the API. [#&#8203;4156](https://github.com/rustwasm/wasm-bindgen/pull/4156) *** ### [`v0.2.93`](https://github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#0293) [Compare Source](https://github.com/wasm-bindgen/wasm-bindgen/compare/0.2.92...0.2.93) Released 2024-08-13 ##### Added - Allow exporting functions named `default`. Throw error in wasm-bindgen-cli if --target web and an exported symbol is named `default`. [#&#8203;3930](https://github.com/rustwasm/wasm-bindgen/pull/3930) - Added support for arbitrary expressions when using `#[wasm_bindgen(typescript_custom_section)]`. [#&#8203;3901](https://github.com/rustwasm/wasm-bindgen/pull/3901) - Implement `From<NonNull<T>>` for `JsValue`. [#&#8203;3877](https://github.com/rustwasm/wasm-bindgen/pull/3877) - Add method `copy_within` for TypedArray, add methods `find_last`,`find_last_index` for Array. [#&#8203;3888](https://github.com/rustwasm/wasm-bindgen/pull/3888) - Added support for returning `Vec`s from async functions. [#&#8203;3630](https://github.com/rustwasm/wasm-bindgen/pull/3630) - Added bindings for `InputDeviceInfo` and `MediaTrackCapabilities`. [#&#8203;3935](https://github.com/rustwasm/wasm-bindgen/pull/3935) - Add bindings for `RTCRtpReceiver.getCapabilities(DOMString)` method. [#&#8203;3941](https://github.com/rustwasm/wasm-bindgen/pull/3941) - Add bindings for `VisualViewport`. [#&#8203;3931](https://github.com/rustwasm/wasm-bindgen/pull/3931) - Add bindings for `queueMicrotask`. [#&#8203;3981](https://github.com/rustwasm/wasm-bindgen/pull/3981) - Add experimental bindings for User Agent Client Hints API [#&#8203;3989](https://github.com/rustwasm/wasm-bindgen/pull/3989) - Add bindings for `FocusOptions`. [#&#8203;3996](https://github.com/rustwasm/wasm-bindgen/pull/3996) - Add bindings for `RTCRtpReceiver.jitterBufferTarget`. [#&#8203;3968](https://github.com/rustwasm/wasm-bindgen/pull/3968) - Generate getters for all WebIDL dictionary types. [#&#8203;3993](https://github.com/rustwasm/wasm-bindgen/pull/3993) - Support for iterable in WebIDL. Gives `entries`, `keys`, `values` methods for regular and asynchronous, as well as `for_each` for regular, iterables. [#&#8203;3962](https://github.com/rustwasm/wasm-bindgen/pull/3962) - Add bindings for `HTMLTableCellElement.abbr` and `scope` properties. [#&#8203;3972](https://github.com/rustwasm/wasm-bindgen/pull/3972) - Add WebIDL definitions relating to `Popover API`. [#&#8203;3977](https://github.com/rustwasm/wasm-bindgen/pull/3977) - Added the `thread_stack_size` property to the object parameter of `default()` (`init()`) and `initSync()`, making it possible to set the stack size of spawned threads. `__wbindgen_thread_destroy()` now has a third optional parameter for the stack size, the default stack size is assumed when not passing it. When calling from the thread to be destroyed, by passing no parameters, the correct stack size is determined internally. [#&#8203;3995](https://github.com/rustwasm/wasm-bindgen/pull/3995) - Added bindings to the Device Memory API. [#&#8203;4011](https://github.com/rustwasm/wasm-bindgen/pull/4011) - Added support for WebIDL records. This added new methods to various APIs, notably `ClipboardItem()`, `GPUDeviceDescriptor.requiredLimits` and `Header()`. [#&#8203;4030](https://github.com/rustwasm/wasm-bindgen/pull/4030) - Added an official MSRV policy. Library MSRV changes will be accompanied by a minor version bump. CLI tool MSRV can change with any version bump. [#&#8203;4038](https://github.com/rustwasm/wasm-bindgen/pull/4038) - Added bindings to `NavigatorOptions.vibrate`. [#&#8203;4041](https://github.com/rustwasm/wasm-bindgen/pull/4041) - Added an experimental Node.JS ES module target, in comparison the current `node` target uses CommonJS, with `--target experimental-nodejs-module` or when testing with `wasm_bindgen_test_configure!(run_in_node_experimental)`. [#&#8203;4027](https://github.com/rustwasm/wasm-bindgen/pull/4027) - Added importing strings as `JsString` through `#[wasm_bindgen(thread_local, static_string)] static STRING: JsString = "a string literal";`. [#&#8203;4055](https://github.com/rustwasm/wasm-bindgen/pull/4055) - Added experimental test coverage support for `wasm-bindgen-test-runner`, see the guide for more information. [#&#8203;4060](https://github.com/rustwasm/wasm-bindgen/pull/4060) ##### Changed - Stabilize Web Share API. [#&#8203;3882](https://github.com/rustwasm/wasm-bindgen/pull/3882) - Generate JS bindings for WebIDL dictionary setters instead of using `Reflect`. This increases the size of the Web API bindings but should be more performant. Also, importing getters/setters from JS now supports specifying the JS attribute name as a string, e.g. `#[wasm_bindgen(method, setter = "x-cdm-codecs")]`. [#&#8203;3898](https://github.com/rustwasm/wasm-bindgen/pull/3898) - Greatly improve the performance of sending WebIDL 'string enums' across the JavaScript boundary by converting the enum variant string to/from an int. [#&#8203;3915](https://github.com/rustwasm/wasm-bindgen/pull/3915) - Use `table.fill` when appropriate. [#&#8203;3446](https://github.com/rustwasm/wasm-bindgen/pull/3446) - Annotated methods in WebCodecs that throw. [#&#8203;3970](https://github.com/rustwasm/wasm-bindgen/pull/3970) - Update and stabilize the Clipboard API. [#&#8203;3992](https://github.com/rustwasm/wasm-bindgen/pull/3992) - Deprecate builder-pattern type setters for WebIDL dictionary types and introduce non-mutable setters instead. [#&#8203;3993](https://github.com/rustwasm/wasm-bindgen/pull/3993) - Allow imported async functions to return any type that can be converted from a `JsValue`. [#&#8203;3919](https://github.com/rustwasm/wasm-bindgen/pull/3919) - Update Web Authentication API to level 3. [#&#8203;4000](https://github.com/rustwasm/wasm-bindgen/pull/4000) - Deprecate `AudioBufferSourceNode.onended` and `AudioBufferSourceNode.stop()`. [#&#8203;4020](https://github.com/rustwasm/wasm-bindgen/pull/4020) - Increase default stack size for spawned threads from 1 to 2 MB. [#&#8203;3995](https://github.com/rustwasm/wasm-bindgen/pull/3995) - Deprecated parameters to `default` (`init`) and `initSync` in favor of an object. [#&#8203;3995](https://github.com/rustwasm/wasm-bindgen/pull/3995) - Update `AbortSignal` and `AbortController` according to the WHATWG specification. [#&#8203;4026](https://github.com/rustwasm/wasm-bindgen/pull/4026) - Update the Indexed DB API. [#&#8203;4027](https://github.com/rustwasm/wasm-bindgen/pull/4027) - `UnwrapThrowExt for Result` now makes use of the required `Debug` bound to display the error as well. [#&#8203;4035](https://github.com/rustwasm/wasm-bindgen/pull/4035) [#&#8203;4049](https://github.com/rustwasm/wasm-bindgen/pull/4049) - MSRV of CLI tools bumped to v1.76. This does not affect libraries like `wasm-bindgen`, `js-sys` and `web-sys`! [#&#8203;4037](https://github.com/rustwasm/wasm-bindgen/pull/4037) - Filtered files in published crates, significantly reducing the package size and notably excluding any bash files. [#&#8203;4046](https://github.com/rustwasm/wasm-bindgen/pull/4046) - Deprecated `JsStatic` in favor of `#[wasm_bindgen(thread_local)]`, which creates a `std::thread::LocalKey`. The syntax is otherwise the same. [#&#8203;4057](https://github.com/rustwasm/wasm-bindgen/pull/4057) - Removed `impl Deref for JsStatic` when compiling with `cfg(target_feature = "atomics")`, which was unsound. [#&#8203;4057](https://github.com/rustwasm/wasm-bindgen/pull/4057) - Updated the WebGPU WebIDL to the current draft as of 2024-08-05. [#&#8203;4062](https://github.com/rustwasm/wasm-bindgen/pull/4062) - Use object URLs for linked modules without `--split-linked-modules`. [#&#8203;4067](https://github.com/rustwasm/wasm-bindgen/pull/4067) ##### Fixed - Copy port from headless test server when using `WASM_BINDGEN_TEST_ADDRESS`. [#&#8203;3873](https://github.com/rustwasm/wasm-bindgen/pull/3873) - Fix `catch` not being thread-safe. [#&#8203;3879](https://github.com/rustwasm/wasm-bindgen/pull/3879) - Fix MSRV compilation. [#&#8203;3927](https://github.com/rustwasm/wasm-bindgen/pull/3927) - Fix `clippy::empty_docs` lint. [#&#8203;3946](https://github.com/rustwasm/wasm-bindgen/pull/3946) - Fix missing target features in module when enabling reference types or multi-value transformation. [#&#8203;3967](https://github.com/rustwasm/wasm-bindgen/pull/3967) - Fixed Rust values getting GC'd while still borrowed. [#&#8203;3940](https://github.com/rustwasm/wasm-bindgen/pull/3940) - Fixed Rust values not getting GC'd if they were created via. a constructor. [#&#8203;3940](https://github.com/rustwasm/wasm-bindgen/pull/3940) - Fix triggering `clippy::mem_forget` lint in exported structs. [#&#8203;3985](https://github.com/rustwasm/wasm-bindgen/pull/3985) - Fix MDN links to static interface methods. [#&#8203;4010](https://github.com/rustwasm/wasm-bindgen/pull/4010) - Fixed Deno support. [#&#8203;3990](https://github.com/rustwasm/wasm-bindgen/pull/3990) - Fix `__wbindgen_thread_destroy()` ignoring parameters. [#&#8203;3995](https://github.com/rustwasm/wasm-bindgen/pull/3995) - Fix `no_std` support and therefor compiling with `default-features = false`. [#&#8203;4005](https://github.com/rustwasm/wasm-bindgen/pull/4005) - Fix byte order for big-endian platforms. [#&#8203;4015](https://github.com/rustwasm/wasm-bindgen/pull/4015) - Allow ex/importing structs, functions and parameters named with raw identifiers. [#&#8203;4025](https://github.com/rustwasm/wasm-bindgen/pull/4025) - Implement a more reliable way to detect the stack pointer. [#&#8203;4036](https://github.com/rustwasm/wasm-bindgen/pull/4036) - `#[track_caller]` is now always applied on `UnwrapThrowExt` methods when not targeting `wasm32-unknown-unknown`. [#&#8203;4042](https://github.com/rustwasm/wasm-bindgen/pull/4042) - Fixed linked modules emitting snippet files when not using `--split-linked-modules`. [#&#8203;4066](https://github.com/rustwasm/wasm-bindgen/pull/4066) *** </details> --- ### Configuration 📅 **Schedule**: (in timezone Etc/GMT) - Branch creation - "after 2am and before 6am" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzUuMiIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->
chore(deps): update cargo
Some checks failed
renovate/artifacts Artifact file update failure
code quality / clippy_check (pull_request) Has been cancelled
main / Rust tests (marzano) (pull_request) Has been cancelled
main / Rust wasm (pull_request) Has been cancelled
main / Test the standard library (pull_request) Has been cancelled
pr-lint / validate PR title (pull_request) Has been cancelled
48695589c7
renovate scheduled this pull request to auto merge when all checks succeed 2026-08-09 05:16:03 +00:00
Author
Member

⚠️ Artifact update problem

Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/auth/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
    Updating git repository `https://github.com/getgrit/embeddings.git`
From https://github.com/getgrit/embeddings
 * [new ref]         403b8b794175c1f01c3c3800566e9d1d54e7a8f4 -> refs/commit/403b8b794175c1f01c3c3800566e9d1d54e7a8f4
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/cli/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/cli_bin/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/externals/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/grit-pattern-matcher/Cargo.toml --package getrandom@0.2.12 --precise 0.2.17
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/grit-util/Cargo.toml --package napi@2.16.4 --precise 2.16.17
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/gritcache/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/gritmodule/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/language/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/lsp/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/marzano_messenger/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/test_utils/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/util/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/wasm-bindings/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path js/gritql/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104
    Updating crates.io index
error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)`

Caused by:
  failed to load source for dependency `tree-sitter-facade-sg`

Caused by:
  unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade

Caused by:
  failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path resources/language-metavariables/tree-sitter-elixir/Cargo.toml --package tree-sitter-language@0.1.2 --precise 0.1.7
    Updating crates.io index
error: package ID specification `tree-sitter-language@0.1.2` did not match any packages
help: there are similar package ID specifications:

  tree-sitter-language@0.1.7

### ⚠️ Artifact update problem Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/auth/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index Updating git repository `https://github.com/getgrit/embeddings.git` From https://github.com/getgrit/embeddings * [new ref] 403b8b794175c1f01c3c3800566e9d1d54e7a8f4 -> refs/commit/403b8b794175c1f01c3c3800566e9d1d54e7a8f4 error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/cli/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/cli_bin/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/externals/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/grit-pattern-matcher/Cargo.toml --package getrandom@0.2.12 --precise 0.2.17 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/grit-util/Cargo.toml --package napi@2.16.4 --precise 2.16.17 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/gritcache/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/gritmodule/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/language/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/lsp/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/marzano_messenger/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/test_utils/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/util/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/wasm-bindings/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path js/gritql/Cargo.toml --package anyhow@1.0.80 --precise 1.0.104 Updating crates.io index error: failed to get `tree-sitter-facade-sg` as a dependency of package `marzano-core v0.2.0 (/tmp/renovate/repos/forgejo/singularity/gritql/crates/core)` Caused by: failed to load source for dependency `tree-sitter-facade-sg` Caused by: unable to update /tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade Caused by: failed to read `/tmp/renovate/repos/forgejo/singularity/gritql/vendor/tree-sitter-facade/Cargo.toml` Caused by: No such file or directory (os error 2) ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path resources/language-metavariables/tree-sitter-elixir/Cargo.toml --package tree-sitter-language@0.1.2 --precise 0.1.7 Updating crates.io index error: package ID specification `tree-sitter-language@0.1.2` did not match any packages help: there are similar package ID specifications: tree-sitter-language@0.1.7 ```
renovate force-pushed renovate/patch-cargo from 48695589c7
Some checks failed
renovate/artifacts Artifact file update failure
code quality / clippy_check (pull_request) Has been cancelled
main / Rust tests (marzano) (pull_request) Has been cancelled
main / Rust wasm (pull_request) Has been cancelled
main / Test the standard library (pull_request) Has been cancelled
pr-lint / validate PR title (pull_request) Has been cancelled
to 9b67c87531
Some checks failed
main / Rust tests (marzano) (pull_request) Failing after 1s
code quality / clippy_check (pull_request) Failing after 1s
NAPI Bindings / Build - aarch64-apple-darwin (pull_request) Failing after 1s
NAPI Bindings / Build - x86_64-unknown-linux-gnu (pull_request) Failing after 1s
main / Rust wasm (pull_request) Failing after 3s
main / Test the standard library (pull_request) Failing after 3s
NAPI Bindings / Build - aarch64-linux-android (pull_request) Failing after 1s
NAPI Bindings / Build - aarch64-pc-windows-msvc (pull_request) Failing after 1s
NAPI Bindings / Build - x86_64-apple-darwin (pull_request) Failing after 1s
NAPI Bindings / Build - x86_64-pc-windows-msvc (pull_request) Failing after 1s
NAPI Bindings / Build - x86_64-unknown-linux-musl (pull_request) Failing after 1s
NAPI Bindings / Build - aarch64-unknown-linux-gnu (pull_request) Failing after 1s
pr-lint / validate PR title (pull_request) Failing after 1s
NAPI Bindings / Build - FreeBSD x64 (pull_request) Failing after 1s
NAPI Bindings / Build - riscv64gc-unknown-linux-gnu (pull_request) Failing after 22s
NAPI Bindings / Build - aarch64-unknown-linux-musl (pull_request) Failing after 20s
NAPI Bindings / Test - Linux x64 gnu - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - Linux x64 gnu - node@20 (pull_request) Has been skipped
NAPI Bindings / Test - Linux x64 musl - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - Linux x64 musl - node@20 (pull_request) Has been skipped
NAPI Bindings / Test - Linux aarch64 gnu - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - Linux aarch64 gnu - node@20 (pull_request) Has been skipped
NAPI Bindings / Test - Linux aarch64 musl (pull_request) Has been skipped
NAPI Bindings / Build universal macOS binary (pull_request) Has been skipped
NAPI Bindings / Test - x86_64-pc-windows-msvc - node@20 (pull_request) Has been skipped
NAPI Bindings / Test - universal-apple-darwin - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - x86_64-pc-windows-msvc - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - universal-apple-darwin - node@20 (pull_request) Has been skipped
NAPI Bindings / Publish to npm (pull_request) Has been skipped
renovate/artifacts Artifact file update failure
2026-08-09 09:14:36 +00:00
Compare
Author
Member

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

### Edited/Blocked Notification Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. ⚠️ **Warning**: custom changes will be lost.
Some checks failed
main / Rust tests (marzano) (pull_request) Failing after 1s
code quality / clippy_check (pull_request) Failing after 1s
NAPI Bindings / Build - aarch64-apple-darwin (pull_request) Failing after 1s
NAPI Bindings / Build - x86_64-unknown-linux-gnu (pull_request) Failing after 1s
main / Rust wasm (pull_request) Failing after 3s
main / Test the standard library (pull_request) Failing after 3s
NAPI Bindings / Build - aarch64-linux-android (pull_request) Failing after 1s
NAPI Bindings / Build - aarch64-pc-windows-msvc (pull_request) Failing after 1s
NAPI Bindings / Build - x86_64-apple-darwin (pull_request) Failing after 1s
NAPI Bindings / Build - x86_64-pc-windows-msvc (pull_request) Failing after 1s
NAPI Bindings / Build - x86_64-unknown-linux-musl (pull_request) Failing after 1s
NAPI Bindings / Build - aarch64-unknown-linux-gnu (pull_request) Failing after 1s
pr-lint / validate PR title (pull_request) Failing after 1s
NAPI Bindings / Build - FreeBSD x64 (pull_request) Failing after 1s
NAPI Bindings / Build - riscv64gc-unknown-linux-gnu (pull_request) Failing after 22s
NAPI Bindings / Build - aarch64-unknown-linux-musl (pull_request) Failing after 20s
NAPI Bindings / Test - Linux x64 gnu - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - Linux x64 gnu - node@20 (pull_request) Has been skipped
NAPI Bindings / Test - Linux x64 musl - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - Linux x64 musl - node@20 (pull_request) Has been skipped
NAPI Bindings / Test - Linux aarch64 gnu - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - Linux aarch64 gnu - node@20 (pull_request) Has been skipped
NAPI Bindings / Test - Linux aarch64 musl (pull_request) Has been skipped
NAPI Bindings / Build universal macOS binary (pull_request) Has been skipped
NAPI Bindings / Test - x86_64-pc-windows-msvc - node@20 (pull_request) Has been skipped
NAPI Bindings / Test - universal-apple-darwin - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - x86_64-pc-windows-msvc - node@18 (pull_request) Has been skipped
NAPI Bindings / Test - universal-apple-darwin - node@20 (pull_request) Has been skipped
NAPI Bindings / Publish to npm (pull_request) Has been skipped
renovate/artifacts Artifact file update failure
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/patch-cargo:renovate/patch-cargo
git switch renovate/patch-cargo

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/patch-cargo
git switch renovate/patch-cargo
git rebase main
git switch main
git merge --ff-only renovate/patch-cargo
git switch renovate/patch-cargo
git rebase main
git switch main
git merge --no-ff renovate/patch-cargo
git switch main
git merge --squash renovate/patch-cargo
git switch main
git merge --ff-only renovate/patch-cargo
git switch main
git merge renovate/patch-cargo
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
singularity/gritql!5
No description provided.