3597b0f53d
Some checks are pending
CI / Cargo fmt (push) Waiting to run
CI / Cargo clippy (push) Waiting to run
CI / Check license of dependencies (push) Waiting to run
CI / Check (macos-latest) (push) Waiting to run
CI / Check (ubuntu-latest) (push) Waiting to run
CI / Check (windows-latest) (push) Waiting to run
CI / Test wasm (binding_core_wasm) (push) Waiting to run
CI / Test wasm (binding_minifier_wasm) (push) Waiting to run
CI / Test wasm (binding_typescript_wasm) (push) Waiting to run
CI / List crates (push) Waiting to run
CI / Test - ${{ matrix.settings.crate }} - ${{ matrix.settings.os }} (push) Blocked by required conditions
CI / Test node bindings - ${{ matrix.os }} (macos-latest) (push) Waiting to run
CI / Test node bindings - ${{ matrix.os }} (windows-latest) (push) Waiting to run
CI / Test with @swc/cli (push) Waiting to run
CI / Miri (better_scoped_tls) (push) Waiting to run
CI / Miri (string_enum) (push) Waiting to run
CI / Miri (swc) (push) Waiting to run
CI / Miri (swc_bundler) (push) Waiting to run
CI / Done (push) Blocked by required conditions
Benchmark / Bench everything (push) Waiting to run
Publish crates (auto) / Publish cargo crates (push) Waiting to run
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [futures](https://rust-lang.github.io/futures-rs) ([source](https://redirect.github.com/rust-lang/futures-rs)) | workspace.dependencies | patch | `0.3.30` -> `0.3.31` | | [js-sys](https://rustwasm.github.io/wasm-bindgen/) ([source](https://redirect.github.com/rustwasm/wasm-bindgen/tree/HEAD/crates/js-sys)) | workspace.dependencies | patch | `0.3.70` -> `0.3.72` | | [pathdiff](https://redirect.github.com/Manishearth/pathdiff) | workspace.dependencies | patch | `0.2.1` -> `0.2.2` | | [triomphe](https://redirect.github.com/Manishearth/triomphe) | workspace.dependencies | patch | `0.1.13` -> `0.1.14` | | [wasm-bindgen](https://rustwasm.github.io/) ([source](https://redirect.github.com/rustwasm/wasm-bindgen)) | dependencies | patch | `0.2.93` -> `0.2.95` | | [wasm-bindgen](https://rustwasm.github.io/) ([source](https://redirect.github.com/rustwasm/wasm-bindgen)) | workspace.dependencies | patch | `0.2.93` -> `0.2.95` | | [wasm-bindgen-futures](https://rustwasm.github.io/wasm-bindgen/) ([source](https://redirect.github.com/rustwasm/wasm-bindgen/tree/HEAD/crates/futures)) | workspace.dependencies | patch | `0.4.43` -> `0.4.45` | --- ### Release Notes <details> <summary>rust-lang/futures-rs (futures)</summary> ### [`v0.3.31`](https://redirect.github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0331---2024-10-05) [Compare Source](https://redirect.github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) - Fix use after free of task in `FuturesUnordered` when dropped future panics ([#​2886](https://redirect.github.com/rust-lang/futures-rs/issues/2886)) - Fix soundness bug in `task::waker_ref` ([#​2830](https://redirect.github.com/rust-lang/futures-rs/issues/2830)) This is a breaking change but allowed because it is soundness bug fix. - Fix bugs in `AsyncBufRead::read_line` and `AsyncBufReadExt::lines` ([#​2884](https://redirect.github.com/rust-lang/futures-rs/issues/2884)) - Fix parsing issue in `select!`/`select_biased!` ([#​2832](https://redirect.github.com/rust-lang/futures-rs/issues/2832)) This is technically a breaking change as it will now reject a very odd undocumented syntax that was previously accidentally accepted. - Work around issue due to upstream `Waker::will_wake` change ([#​2865](https://redirect.github.com/rust-lang/futures-rs/issues/2865)) - Add `stream::Iter::{get_ref,get_mut,into_inner}` ([#​2875](https://redirect.github.com/rust-lang/futures-rs/issues/2875)) - Add `future::AlwaysReady` ([#​2825](https://redirect.github.com/rust-lang/futures-rs/issues/2825)) - Relax trait bound on non-constructor methods of `io::{BufReader,BufWriter}` ([#​2848](https://redirect.github.com/rust-lang/futures-rs/issues/2848)) </details> <details> <summary>Manishearth/triomphe (triomphe)</summary> ### [`v0.1.14`](https://redirect.github.com/Manishearth/triomphe/compare/v0.1.13...v0.1.14) [Compare Source](https://redirect.github.com/Manishearth/triomphe/compare/v0.1.13...v0.1.14) </details> <details> <summary>rustwasm/wasm-bindgen (wasm-bindgen)</summary> ### [`v0.2.95`](https://redirect.github.com/rustwasm/wasm-bindgen/blob/HEAD/CHANGELOG.md#0295) [Compare Source](https://redirect.github.com/rustwasm/wasm-bindgen/compare/0.2.94...0.2.95) Released 2024-10-10 ##### Added - Added support for implicit discriminants in enums. [#​4152](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4152) - Added support for `Self` in complex type expressions in methods. [#​4155](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4155) ##### Changed - String enums are no longer generate TypeScript types. [#​4174](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4174) ##### Fixed - Fixed generated setters from WebIDL interface attributes binding to wrong JS method names. [#​4170](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4170) - Fix string enums showing up in JS documentation and TypeScript bindings without corresponding types. [#​4175](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4175) *** ### [`v0.2.94`](https://redirect.github.com/rustwasm/wasm-bindgen/blob/HEAD/CHANGELOG.md#0294-YANKED) [Compare Source](https://redirect.github.com/rustwasm/wasm-bindgen/compare/0.2.93...0.2.94) Released 2024-10-09 ##### Added - Added support for the WebAssembly `Tail Call` proposal. [#​4111](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4111) - Add bindings for `RTCPeerConnection.setConfiguration(RTCConfiguration)` method. [#​4105](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4105) - Add bindings to `RTCRtpTransceiverDirection.stopped`. [#​4102](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4102) - Added experimental support for `Symbol.dispose` via `WASM_BINDGEN_EXPERIMENTAL_SYMBOL_DISPOSE`. [#​4118](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4118) - Added bindings for the draft [WebRTC Encoded Transform](https://www.w3.org/TR/webrtc-encoded-transform) spec. [#​4125](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4125) - Added `Debug` implementation to `JsError`. [#​4136](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4136) - Added support for `js_name` and `skip_typescript` attributes for string enums. [#​4147](https://redirect.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. [#​4150](https://redirect.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`). [#​4156](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4156) - Added additional bindings for setters from WebIDL interface attributes with applicaple parameter types of just `JsValue`. [#​4156](https://redirect.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. [#​4133](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4133) - Updated Gamepad API. [#​4134](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4134) - Deprecated `Gamepad::display_id` and `GamepadHapticActuator::type_`. [#​4134](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4134) - Removed `GamepadAxisMoveEvent`, `GamepadAxisMoveEventInit`, `GamepadButtonEvent`, `GamepadButtonEventInit` and `GamepadServiceTest`, which were seemingly never implemented by any JS environment. [#​4134](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4134) - Changed `TextDecoder.decode()` `input` parameter type from `&mut [u8]` to `&[u8]`. [#​4141](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4141) - Updated the WebGPU API to the current draft as of 2024-10-07. [#​4145](https://redirect.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. [#​4156](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4156) ##### Fixed - Fixed linked modules emitting snippet files when not using `--split-linked-modules`. [#​4066](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4066) - Fixed incorrect deprecation warning when passing no parameter into `default()` (`init()`) or `initSync()`. [#​4074](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4074) - Fixed many proc-macro generated `impl` blocks missing `#[automatically_derived]`, affecting test coverage. [#​4078](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4078) - Fixed negative `BigInt` values being incorrectly formatted with two minus signs. [#​4082](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4082) [#​4088](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4088) - Fixed emitted `package.json` structure to correctly specify its dependencies [#​4091](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4091) - Fixed returning `Option<Enum>` now correctly has the `| undefined` type in TS bindings. [#​4137](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4137) - Fixed enum variant name collisions with object prototype fields. [#​4137](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4137) - Fixed multiline doc comment alignment and remove empty ones entirely. [#​4135](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4135) - Fixed `experimental-nodejs-module` target when used with `#[wasm_bindgen(start)]`. [#​4093](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4093) - Fixed error when importing very large JS files. [#​4146](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4146) - Specify `"type": "module"` when deploying to nodejs-module [#​4092](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4092) - Fixed string enums not generating TypeScript types. [#​4147](https://redirect.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. [#​4156](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4156) *** </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/swc-project/swc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguMTIwLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
---|---|---|
.cargo | ||
.changeset | ||
.github | ||
.husky | ||
.vscode | ||
bindings | ||
crates | ||
docs/adr | ||
packages | ||
rules | ||
scripts | ||
tools | ||
xtask | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.kodiak.toml | ||
.mocha.setup.js | ||
.mocharc.js | ||
.prettierignore | ||
.prettierrc | ||
.rustfmt.toml | ||
.taplo.toml | ||
.yarnrc.yml | ||
ARCHITECTURE.md | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
cliff.toml | ||
clippy.toml | ||
CONTRIBUTING.md | ||
cspell.json | ||
deny.toml | ||
knope.toml | ||
LICENSE | ||
MAINTENANCE.md | ||
package.json | ||
README.md | ||
renovate.json | ||
rust-toolchain | ||
sgconfig.yml | ||
tests.yml | ||
yarn.lock |
Make the web (development) faster.
SWC (stands for Speedy Web Compiler
) is a super-fast TypeScript / JavaScript compiler written in Rust. It's a library for Rust and JavaScript at the same time. If you are using SWC from Rust, see rustdoc and for most users, your entry point for using the library will be parser.
Also, SWC tries to ensure that
If you select the latest version of each crates, it will work
for rust users.
MSRV of crates is currently 1.73
.
To update all SWC crates you use, you can run curl https://raw.githubusercontent.com/swc-project/swc/main/scripts/update-all-swc-crates.sh | bash -s
. This script will update all dependencies to the latest version and run cargo build
to ensure that everything works.
Note that you need
jq
cargo upgrade
command to run the script.
If you are using SWC from JavaScript, please refer to docs on the website.
Documentation
Check out the documentation in the website.
Features
Please see comparison with babel.
Performance
Please see benchmark results on the website.
Supporting swc
SWC is a community-driven project, and is maintained by a group of volunteers. If you'd like to help support the future of the project, please consider:
- Giving developer time on the project. (Message us on Discord (preferred) or Github discussions for guidance!)
- Giving funds by becoming a sponsor (see https://opencollective.com/swc)!
Contributing
See CONTRIBUTING.md. You may also find the architecture documentation useful (ARCHITECTURE.md).
License
SWC is primarily distributed under the terms of the Apache License (Version 2.0).
See LICENSE for details.