NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #236 most downloaded on crates.io
Implementation APIs for the `#[wasm_bindgen]` attribute
Last release 14 days ago
04 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
111 releases · first in 2018
Reverse mappings from value to name are now available in JS bindings of enums. #2240
Released 2020-07-28.
Functions using a return pointer in threaded programs now correctly load and store return values in a way that doesn't interfere with other threads. #2249
Support for weak references has been updated and a --weak-refs flag is now
available in the CLI for enabling weak references.
#2248
Functions from JS can now be natively imported as async and will use promises under the hood. #2196
One column per quarter.
Nested namespaces for imports can now be specified. #2105
A new example about using WebRTC has been added. #2131
Released 2020-05-27.
A new example about using WebRTC has been added. #2131
Test functions names will no longer collide with test intrinsic names. #2123
Fixed warnings with #[must_use] types in generated code.
#2144
Fixed compatibility with latest Rust nightlies. #2159
Usage of require has been fixed with Webpack 5. #2115
Exported Rust enum types can now be renamed with js_name. #2071
Released 2020-04-29.
Exported Rust enum types can now be renamed with js_name.
#2071
More comments are copied to JS/TS files, and comments should no longer accidentally have escape sequences in them. #2070
Experimental bindings for the Clipboard browser APIs have been added. #2100
WebGPU bindings have been updated. #2080
setBindGroup methods for WebIDL now take immutable slices instead of mutable
slices.
#2087
JS code generation for catch functions has been improved.
#2098
Usage of NPM dependencies with the web target is no longer an error.
#2103
Combining js_name with getter and setter has now been fixed.
#2074
Importing global names which conflict with other namespaces should now work correctly. #2057
Acquiring the global JS object has been fixed for Firefox extension content scripts. #2099
The output of wasm-bindgen is now compatible with Webpack 5 and the updated
version of the Wasm ESM integration specification.
#2110
The js_sys types are now more accurately reflected in TypeScript. #2028
Released 2020-03-25.
The js_sys types are now more accurately reflected in TypeScript.
#2028
The timeout in wasm-bindgen-test-runner's timeout can now be configured via
WASM_BINDGEN_TEST_TIMEOUT.
#2036
WebIDL for WebXR has been added. #2000
The js_sys::Number type now has a number of JS-number associated constants on it now. #1965
Released 2020-03-03.
The js_sys::Number type now has a number of JS-number associated constants
on it now.
#1965
The getTransform method on CanvasRenderingContext2D has been added.
#1966
Initial experimental support was added for electron targets with a new
--omit-imports flag.
#1958
Optional struct fields are now reflected idiomatically in TypeScript. #1990
Typed arrays in js_sys now have get_index and set_index methods.
#2001
The web_sys::Blob type has been updated with arrayBuffer and text
methods.
#2008
Support for unstable browser interfaces has now been added. By compiling
web_sys with --cfg web_sys_unstable_apis (typically via RUSTFLAGS)
you'll be able to access all bound WebIDL functions, even those like GPU
support on the web, which has now also had its WebIDL updated.
#1997
The compile time for web_sys has been massively reduced by pre-generating
Rust code from WebIDL. It is also readable now since it generates
#[wasm_bindgen] annotations instead of expanded code.
#2012
A new typescript_type attribute can be used to specify the TypeScript type
for an extern type. #2012
It is now possible to use string values with #[wasm_bindgen] enums.
#2012
A new skip_tyepscript attribute is recognized to skip generating TypeScript
bindings for a function or type.
#2016
More uniformMatrix* bindings now are whitelisted take shared slice instead
of a mutable slice.
#1957
Non-dependency keys in package.json are now ignored instead of error'd
about.
#1969
WebGPU has been removed from web_sys since it was outdated and didn't work
anywhere anyway.
#1972
The JS heap of objects managed by wasm-bindgen has had its definition tightended up a bit. #1987
The self identifier is no longer used on the no-modules target, making it a
bit more flexible in more environments.
#1995
The wasm-loading logic is now more flexible and can take promises as well. #1996
JS glue for closures is now deduplicated. #2002
The web_sys crate now emits more accurate TypeScript definitions using named
types instead of any everywhere.
#1998
The send_with_u8_array methods in web_sys are whitelisted to take shared
slices instead of mutable slices.
#2015
When using the no-modules output type the initialization path for the wasm file is now optional if it can be inferred from the current JS script. #193
The js_sys::Promise type is now marked as #[must_use] #1927
Added a #[wasm_bindgen(inspectable)] attribute for exported objects to generate toJSON and toString implementations. #1876
Released 2019-12-20.
Added a #[wasm_bindgen(inspectable)] attribute for exported objects to
generate toJSON and toString implementations.
#1876
Support for the most recent interface types proposal has been implemented. #1882
Initial support for async iterators has been added. #1895
Support for an async start function was added.
#1905
Array::iter and Array::to_vec methods were added to js-sys.
#1909
Running wasm-bindgen over empty anyref modules now works again. #1861
A safe to_vec method has been added for typed arrays. #1844
Released 2019-11-07.
A safe to_vec method has been added for typed arrays.
#1844
A unsafe method view_mut_raw has been added to typed arrays.
#1850
The HTMLImageElement WebIDL has been updated with recent features.
#1842
Binary crates are now supported and fn main will be automatically executed
like the start function.
#1843
A bug with the experimental support for multi-value interface types has been fixed. #1839
Released 2019-10-29.
The support for wasm-interface-types now uses multi-value by default. #1805
Released 2019-10-24.
The support for wasm-interface-types now uses multi-value by default. #1805
The Worklet IDL has been updated. #1817
The HTMLInputElement type has selectionStart and selectionEnd properties now. #1811
An unintern function has been added to remove an interned string from the
cache.
#1828
undefined
#1789TextDecoder and Safari has been fxied
#1789The wasm-bindgen-futures and wasm-bindgen-test crates now require Nightly Rust and have a new major version published as a result. These crates now su
Released 2019-09-26.
The wasm-bindgen-futures and wasm-bindgen-test crates now require Nightly
Rust and have a new major version published as a result. These crates now
support async/await by default, and they will be supported in the stable
Rust 1.39.0 release. The previous versions of crates will continue to work on
stable today.
#1741
Using #[wasm_bindgen] on an async function will now work and return a
Promise on the JS side of things.
#1754
More helper methods for js_sys::Array have been added.
#1749
Initial support for the WebAssembly multi-value proposal has been added. #1764
Constructors for js_sys::Date with optional parameters has been added.
#1759
Headless tests can now be run against a remote webdriver client #1744
passStringToWasm function has been optimized for size.
#1736BOM markers will not be preserved when passing strings to/from wasm. #1730
Importing a static value which isn't a JsValue has been fixed.
#1784
Converting undefined to a Rust value via into_serde has been fixed.
#1783
Routine errors are no longer erroneously logged in debug mode. #1788
Experimental support with a WASM_INTERFACE_TYPES=1 environment variable has been added to emit a Wasm Interface Types custom section, making the outpu
Released 2019-08-19.
WASM_INTERFACE_TYPES=1 environment variable has
been added to emit a Wasm Interface Types custom section, making the output of
wasm-bindgen a single standalone WebAssembly file.
#1725instantiateStreaming fallback.
#1723Add binding for Element.getElementsByClassName. #1665
Released 2019-08-14.
Add binding for Element.getElementsByClassName.
#1665
PartialEq and Eq are now implemented for all web-sys types.
#1673
The wasm-bindgen-futures crate now has support for futures when the
experimental WebAssembly threading feature is enabled.
#1514
A new enable-interning feature is available to intern strings and reduce the
cost of transferring strings across the JS/Rust boundary.
#1612
The wasm-bindgen CLI has experimental support for reading native
webidl-bindings custom sections and generating JS glue. This support is in
addition to Rust's own custom sections and allows using wasm-bindgen with
binaries produced by other than rustc possibly.
#1690
New environment variables have been added to configure webdriver startup arguments. #1703
New JsValue::{is_truthy,is_falsy} methods are now available.
#1638
JS import shims are now skipped again when they are unnecessary. #1654
WebAssembly output files now directly embed the module/name for imports if supported for the target and the import, reducing JS shims even further. #1689
Support for threads have been updated for LLVM 9 and nightly Rust. #1675 #1688
The anyref passes in wasm-bindgen have seen a number of fixes to improve
their correctness and get the full test suite running.
#1692
#1704
Support for futures-preview 0.3.0-alpha.18 has been added to
wasm-bindgen-futures.
#1716
All typed arrays now implement From for the corresponding Rust slice type, providing a safe way to create an instance which copies the data. #1620
Released 2019-07-11.
All typed arrays now implement From for the corresponding Rust slice type,
providing a safe way to create an instance which copies the data.
#1620
Function::bind{2,3,4} are now available in js-sys.
#1633
More WebGL methods have been updated to use shared slices instead of mutable slices. #1639
When using the bundler target the import of the Wasm file now uses the
.wasm extension to ensure a Wasm file is loaded.
#1646
The old internal Stack trait has been removed since it is no longer used.
#1624
The js_sys::global() accessor now attempts other strategies before falling
back to a Function constructor which can violate some strict CSP settings.
#1650
Dropping a JsFuture no longer logs a benign error to the console.
#1649
Fixed an assertion which could happen in some modules when generating bindings. #1617
The HtmlHyperlinkElement should now include more native methods after a small edit to the WebIDL. #1604
Released 2019-06-19.
The HtmlHyperlinkElement should now include more native methods after a
small edit to the WebIDL.
#1604
Duplicate names for getters/setters now have a first-class wasm-bindgen
error.
#1605
TypeScript definition of init with --target web now reflects that the
first argument is optional.
#1599
A panic with the futures 0.3 support has been fixed. #1598
More slice types are recognized as becoming immutable in some WebIDL methods. #1602
The function table is now no longer too aggressively removed. #1606
Bindings for Array#flat and Array#flatMap have been added. #1573
Released 2019-06-14.
Bindings for Array#flat and Array#flatMap have been added.
#1573
All #[wasm_bindgen] types now AsRef to themselves.
#1583
When using --target web the path passed to init is no longer required.
#1579
Some diagnostics related to compiler errors in #[wasm_bindgen] have been
improved.
#1550
The support for weak references has been updated to the current JS proposal. #1557
Documentation and feature gating for web-sys dictionaries has improved. #1572
Getter and setter TypeScript has been fixed. #1577
The env_logger crate and its tree of dependencies is no longer required to
build web-sys.
#1586
Using __wbindgen_cb_forget on --target web has been fixed. #1544
Support for exporting "fields" on JS objects wrapping Rust structs which are hooked up to getters/setters has been added. This is in addition to pub s
Released 2019-05-16.
Support for exporting "fields" on JS objects wrapping Rust structs which are
hooked up to getters/setters has been added. This is in addition to pub
struct fields and allows performing more complicated computations in
getters/setters.
#1440
Support for futures 0.3 (and async / await syntax) has been added to the
wasm-bindgen-futures crate.
#1507
Stacks of imported JS functions that throw and aren't marked catch are now
logged in debug mode.
#1466
A utility for counting the size of the anyref heap has been added.
#1521
Passing ASCII-only strings to Wasm should now be significantly faster. #1470
The selectionStart and selectionEnd APIs of text areas have been enabled.
#1533
Some more methods in web-sys now take immutable slices instead of mutable
ones.
#1508
TypeScript bindings for Option<T> arguments now use foo? where possible.
#1483
Unnecessary bindings to __wbindgen_object_drop_ref have been fixed.
#1504
Some direct imports have been fixed for --target web.
#1503
Both importing and exporting the same name has been fixed. #1506
TypeScript typings for init in --target web have been fixed.
#1520
Calling a dropped Closure should no longer "segfault" but produce a clear
error.
#1530
Support for isize and usize arrays has been added. #1448
Released 2019-04-29.
Support for isize and usize arrays has been added.
#1448
Support customizing dyn_ref and friends via a new is_type_of attribute and
apply it to some js_sys bindings.
#1405
#1450
#1490
A new skip attribute to #[wasm_bindgen] has been added to skip fields and
methods when generating bindings.
#1410
More bindings have been added to web-sys for interfaces tagged with
[NoInterfaceObject] in WebIDL. These types always fail dyn_ref and friends
and must be manually casted into.
#1449
Added Debug for JsFuture.
#1477
Initial bindings for Atomics and SharedArrayBuffer have been added to
js_sys.
#1463
Bindings for Object.fromEntries has been added to js_sys.
#1456
Tuple structs exported to JS now have indexed struct properties. #1467
Binding for new Function(args, body) has been added to js_sys.
#1492
Bindings for some variadic functions have been added to js_sys.
#1491
Many js-sys types have received various tweaks and improvements to ensure
they're consistent and work similarly to native Rust types.
#1447
#1444
#1473
Dummy types in js-sys only used to namespace methods were removed and now
modules are used for namespacing instead.
#1451
Bindings in web-sys are formatted by default for ease of usage in IDEs.
#1461
Fixed an issue in Firefox where using encodeInto accidentally caused empty strings to keep getting passed to Rust. #1434
Released 2019-04-11.
encodeInto accidentally caused empty
strings to keep getting passed to Rust.
#1434Initial support for transitive NPM dependencies has been added. #1305
Released 2019-04-10.
Initial support for transitive NPM dependencies has been added. #1305
The constructor property of Object is now bound in js-sys.
#1403
The Closure type now always implements Debug.
#1408
Closures which take one &T argument are now supported. More implementations
may be added in the future, but for now it's just one argument closures.
#1417
The TypeScript bindings for --web now expose the init function.
#1412
A js_sys::JsString::is_valid_utf16 method has been added to handle unpaired
surrogates in JS strings. Surrounding documentation has also been updated to
document this potential pitfall.
#1416
A wasm_bindgen::function_table() function has been added to expose the
WebAssembly.Table and get access to it in Wasm code.
#1431
Reexporting the wasm_bindgen macro in crates has been fixed.
#1359
Returning u32 to JS has been fixed where large u32 values would show up in
JS as large negative numbers.
#1401
Manual instantiation with WebAssembly.Module has been fixed.
#1419
Error message for non-Copy public struct fields has been improved.
#1430
Performance of passing strings to Rust in Node.js has been improved. #1391
Performance of js_sys::try_iter has been improved.
#1393
Performance of using TextEncoder#encodeInto has been improved.
#1414
TypeScript and JS generation will now attempt to preserve argument names in the generated JS where possible. #1344
Released 2019-03-21.
TypeScript and JS generation will now attempt to preserve argument names in the generated JS where possible. #1344
Enable Option<T> support for enums defined in WebIDL.
#1350
Add a raw_module attribute to #[wasm_bindgen] which is the same as
module except doesn't attempt to recognize ./, ../, or /` prefixed
paths.
#1353
The wasm-bindgen CLI flags have now all been renamed under a --target
flag. Instead of --web you'll now pass --target web, for example. This
increases consistency between the wasm-bindgen and wasm-pack CLI.
#1369
Definitions for TypedArray imports of js-sys have been unified with a
macro to improve consistency and fix future bugs.
#1371
Usage of --no-modules in CloudFlare workers should now work by default.
#1384
A use-after-free when a closure is reinvoked after being destroyed on the Rust die has been fixed. #1385
A bug causing nondeterministic generation of JS bindings has been fixed. #1383
Crates can now import locally written JS snippets to get bundled into the final output. See [RFC 6] for more details as well as the PR. #1295
Released 2018-03-13.
A typo in the return value of slice methods on typed arrays in js-sys was
corrected.
#1321
The directory specified by --out-dir is now created if it doesn't exist
already.
#1330
nom was in a crate graph and was compiled with the
verbose-errors feature has been fixed. Previously the wasm-bindgen-webidl
crate wouldn't compile, and now it will.
#1338Support for Option in #[wasm_bindgen] functions has now been added. #1275
Released 2019-03-04.
Support for Option<RustStruct> in #[wasm_bindgen] functions has now been
added.
#1275
Experimental support for the anyref type proposal in WebAssembly has now
landed and is enabled with WASM_BINDGEN_ANYREF=1.
#1002
Support for the new browser TextEncode#encodeInto API has been added.
#1279
JS doc comments are now added to TypeScript bindings in addition to the JS bindings generated. #1302
Initial support for FnOnce closures has been added to the Closure type.
#1281
Fixed an internal assert tripping when some modules were compiled with LTO. #1274
The Context type in the wasm-bindgen-test crate had its JS name changed to
avoid conflicts with other crates that have a Context type being exported.
#1280
The headless test runner for Safari on macOS High Sierra has been fixed. #1298
wasm-bindgen CLI tool now emits the producers section again with
relevant bugs having been fixed in the meantime. The
--remove-producers-section flag can continue to be used to omit emission of
this section.
#1263The HtmlMediaElement type now exposes a src_object getter. #1248.
Released 2019-02-15.
The HtmlMediaElement type now exposes a src_object getter.
#1248.
The js_sys::Reflect type now has specializes getter/setters for u32 and
f64 indices.
#1225.
A --remove-producers-section flag has been added to the CLI tool to, well,
remove the producers section from the final Wasm file.
#1256.
wasm-bindgen CLI tool will correctly strip DWARF debug information
unless --keep-debug is passed.
#1255.wasm-bindgen CLI tool no longer emits the producers custom section by
default to work around a webpack bug. See
#1260.Fixed a bug where using closures and LTO together caused a panic inside the wasm-bindgen CLI tool. See #1244.
Released 2019-02-12.
wasm-bindgen CLI tool. See
#1244.wasm-bindgen now internally uses the walrus crate to perform its transformations of the Wasm that rustc/LLVM emits. See #1237.
Added support for optional enums. See #1214.
Released 2019-02-11.
enums. See
#1214.UnwrapThrowExt<T> trait, which can enable smaller code sizes for
panics. See #1219.WebGlRenderingContext methods are now whitelisted to use shared slices
instead of exclusive slices. See
#1199.cfg_attr and wasm_bindgen together like #[cfg_attr(..., wasm_bindgen)]. See
1208.wasm-bindgen-test. See
#1233.WebAssembly.instantiateStreaming fails due to incorrect MIME type,
properly recover. See
#1235.Improved the Debug output of JsValue #1161
Added support for Web IDL sequences. This enabled bindings generation for a couple more Web APIs. We generate functions for Web APIs that take sequenc
Released 2019-01-16.
js_sys::Array is returned. See
#1152 and
#1038.wasm-bindgen-test test runner will capture console.debug,
console.info, and console.warn log messages and print them to stdout
now. It already supported console.log and console.error and continues to
support them. See
#1183 and
#1184.--debug-only assertions in the emitted JS glue for cases
where an imported JS function that is not annotated with
#[wasm_bindgen(catch)] throws an exception. This should help catch some bugs
earlier! See #1179.#[wasm_bindgen_test] tests would fail in non-headless Web
browsers if they used console.log. See
#1167.A new spawn_local function has been added to the wasm-bindgen-futures crate. #1148
The wasm-bindgen CLI now has an --out-name argument to name the output module. #1084
Released 2019-01-07.
The wasm-bindgen CLI now has an --out-name argument to name the output
module.
#1084
Support for importing the default export has been added.
#1106
web-sys methods are now flagged as structural, fixing a few bindings.
#1117Add a #[wasm_bindgen(start)] attribute to customize the start section of the Wasm module. #1057
Released 2018-12-04.
Add a #[wasm_bindgen(start)] attribute to customize the start section of
the Wasm module.
#1057
Add support for producing the new "producers" section of Wasm binaries #1041
Add support a typescript_custom_section attribute for producing custom
typescript abstractions
#1048
Generate *.d.ts files for Wasm files in addition to the JS bindings
#1053
Add a feature to assert that all attributes in #[wasm_bindgen] are used to
help catch typos and mistakes
#1055
JS glue generation has received a few small optimizations such as removing shims and removing object allocations #1033 #1030
JS glue now just uses one array of JS objects instead of two #1069
--no-modules generated JS
#1045The js_class support is now supported on exported types to define a different class in JS than is named in Rust #1012
Released 2018-11-12.
The js_class support is now supported on exported types to define a
different class in JS than is named in Rust
#1012
More WebIDL bindings are exposed with some internal restructuring to ignore unimplemented types at a different location #1014
All imported types now implement Deref to their first extends attribute
(or JsValue if one isn't listed). This is intended to greatly improve the
ergonomics of web-sys bindings by allowing easy access to parent class
methods
#1019
A new attribute, final, can be applied to JS imports. This attribute is
relatively nuanced and best explained in documentation, but is
added since structural is now the default
#1019
--remove-name-section, can be passed to remove the wasm
name section which contains the names of functions for debugging (typically
not needed in release mode)
#1024structural by default. This shouldn't change
the semantics of imported functions, only how they're invoked in the JS
function shims that are generated by wasm-bindgen. More discussion can be
founed on RFC 5 and the PR
#1019Typescript generated bindings now correctly reflect Option<T> for more types
#1008
The JS shim code generation has been optimized for structural bindings (now
the default) to include fewer JS shims and more easily optimizable for JS
engines
#1019
Passing a WebAssembly.Module to the --no-modules constructor has been
fixed
#1025
Fixed an internal panic where the gc passes were being too aggressive #995
Released 2018-10-29.
The TypedArray.slice methods have now been bound in js-sys. #956
Released 2018-10-29.
The TypedArray.slice methods have now been bound in js-sys.
#956
The Debug and Clone traits are now implemented for js_sys::Promise.
#957
The js_sys::DataView type now exposes overloads to specify endianness.
#966
When using --no-modules a WebAssembly.Module can now be directly passed
into the instantiation glue.
#969
The JsValue type is no longer considered Send.
#955
The generated JS glue is now more robust in the face of missing APIs. #959
An issue with the latest version of safaridriver used to run headless tests
has been resolved.
#991
Using wasm-bindgen will no longer unconditionally pull in Rust's default allocator for Wasm (dlmalloc) regardless if you configured a custom global al
Released 2018-10-10.
Using wasm-bindgen will no longer unconditionally pull in Rust's default
allocator for Wasm (dlmalloc) regardless if you configured a custom global
allocator (eg wee_alloc).
#947
Fixed web-sys build on some Windows machines. #943
Fixed generated ES class bindings to Rust structs that were only referenced through struct fields. #948
The BaseAudioContext and AudioScheduledSourceNode types in web-sys have been deprecated as they don't exist in Safari or Edge.
Released 2018-10-05.
Constructors for types in web-sys should now have better documentation.
A new vendor_prefix attribute in #[wasm_bindgen] is supported to bind APIs
on the web which may have a vendor prefix (like webkitAudioContext). This is
then subsequently used to fix AudioContext usage in Safari.
The #[wasm_bindgen(extends = Foo)] attribute now supports full paths, so you
can also say #[wasm_bindgen(extends = foo::Bar)] and such.
The Closure<T> type is now optimized when the underlying closure is a ZST.
The type now no longer allocates memory in this situation.
The documentation now has a list of caveats for browser support, including how
TextEncoder and TextDecoder are not implemented in Edge. If you're using
webpack there's a listed strategy available, and improvements to the polyfill
strategy are always welcome!
The BaseAudioContext and AudioScheduledSourceNode types in web-sys have
been deprecated as they don't exist in Safari or Edge.
Fixed the #[wasm_bindgen_test]'s error messages in a browser to correctly
escape HTML-looking output.
WebIDL Attributes on Window are now correctly bound to not go through
Window.prototype which doesn't exist but instead use a structural
definition.
Fixed a codegen error when the BorrowMut trait was in scope.
Fixed TypeScript generation for constructors of classes, it was accidentally producing a syntactially invalid file!
This is the first release of the `web-sys` crate!
Released 2018-09-26.
Added support for unions of interfaces and non-interfaces in the WebIDL frontend.
Added a policy for inclusion of new ECMAScript features in js-sys: the
feature must be in stage 4 or greater for us to support it.
Added some documentation about size profiling and optimization with
wasm-bindgen to the guide.
Added the Clamped<T> type for generating JavaScript Uint8ClampedArrays.
CI is now running on beta! Can't wait for the rustc release trains to roll
over, so we can run CI on stable too!
Added the js_sys::try_iter function, which checks arbitrary JS values for
compliance with the JS iteration protocol, and if they are iterable, converts
them into an iterator over the JS values that they yield.
We now only generate null checks on methods on the JS side when in debug mode. For safety we will always null check on the Rust side, however.
Improved error messages when defining setters that don't start with set_ and
don't use js_name = ....
Improved generated code for classes in a way that avoids an unnecessary
allocation with static methods that return Self but are not the "main"
constructor.
BREAKING: js_sys::Reflect APIs are all fallible now. This is because
reflecting on Proxys whose trap handlers throw an exception can cause any of
the reflection APIs to throw. Accordingly, js_sys has been bumped from
0.2.X to 0.3.X.
__wbindgen_malloc and __wbindgen_free are
always emitted in the .wasm binary, regardless of seeming reachability is
now zero-overhead.The IntoIterator trait is now implemented for JS Iterator types
Released 2018-09-21
IntoIterator trait is now implemented for JS Iterator typesjs-sys have had explicit arities added.js-sys crate is now complete! Thanks so much to everyone involved to
help fill out all the APIs.#[wasm_bindgen] can now return a Result where
the Err payload is raised as an exception in JS.wasm-bindgen on crates that have been compiled with
LTO has been resolved.Added many more bindings for WebAssembly in the js-sys crate.
Released 2018-09-07
WebAssembly in the js-sys crate.All of wasm-bindgen is configured to compile on stable Rust as of the upcoming 1.30.0 release, scheduled for October 25, 2018.
Released 2018-09-06
wasm-bindgen is configured to compile on stable Rust as of the
upcoming 1.30.0 release, scheduled for October 25, 2018.JsValue of a Closure<T> type can now be extracted at any
time.--wasm2asm flag of wasm2es6js was removed because the wasm2asm tool
has been removed from upstream Binaryen. This is replaced with the new
wasm2js tool from Binaryen.wasm-bindgen crate now has a links key which forbids multiple versions
of wasm-bindgen from being linked into a dependency graph, fixing obscure
linking errors with a more first-class error message.Added bindings to js-sys for some WebAssembly types.
Released 2018-08-27.
js-sys for some WebAssembly types.js-sys for some Intl types.js-sys for some String methods.fetch API.extends annotations for types in js-sys.WeakRef was added to automatically deallocate Rust
objects when gc'd.wasm-bindgen over modules that import their
memory.memory() function in the wasm-bindgen crate for accessing
the JS object that represent wasm's own memory.AsMut implementations for imported objects.constructor and catch attributes combined on imported types.Nothing published for this version
Greatly expanded documentation in the wasm-bindgen guide.
Released 2018-08-16.
js-sys for Intl.DateTimeFormatextends attributes for types in js-sysproc-macro2module pathsAdded the wasm_bindgen::JsCast trait, as described in [RFC #2][rfc-2].
Released 2018-08-13.
wasm_bindgen::JsCast trait, as described in RFC #2.#[wasm_bindgen(extends = ...)] attribute to
describe inheritance relationships, as described in RFC #2.Option<&T> parameters from JavaScript in
exported Rust functions and methods.Option<u32> and other option-wrapped scalars.#[wasm_bindgen]
attribute and how it affects the generated bindings.wasm-bindgen-futures crate for converting between JS
Promises and Rust Futures.JsValue and deserialize JsValues back into complex data.Promise's static methods.syn's visit-mut cargo feature, which should
result in faster build times.#[wasm_bindgen] proc-macro are now properly
reported with source span information, rather than panic!()s inside the
proc-macro.#[wasm_bindgen(js_class = "....")] attribute for binding methods to
renamed imported JS classes now properly works with constructors.Your coding agent can read these notes before it upgrades. Set up the MCP server →