SwiftWasm 5.5.0 is now available

The SwiftWasm team is happy to announce the new release of SwiftWasm tracking upstream Swift 5.5! Notably, in this release we've added support for async / await . This new feature of Swift can be integrated with JavaScript promises when you're using a new version of JavaScriptKit that was recently tagged. See the corresponding section in our blog announcement for more details.

Since multi-threading in WebAssembly is still not supported across all browsers (Safari is the only one lagging behind), this release of SwiftWasm doesn't include the Dispatch library and ships with a single-threaded cooperative executor. This means that actor declarations in your code will behave as plain reference types and will all be scheduled on the main thread. If you need true parallel computation, you’ll have to write custom code against the Web Workers API (either via JavaScriptKit or delegating to raw JavaScript) to synchronize multiple SwiftWasm runtimes.

Additionally, 5.5.0 is the first release of SwiftWasm that supports Apple Silicon natively. The latest version of carton (0.12.0) will download the arm64 distribution on Apple Silicon devices. carton init templates were updated to include JavaScriptKit 0.11.1 and Tokamak 0.9. The latter also had some notable updates, including basic async / await support.

We'd like to express gratitude to our sponsors for their donations, which allowed us to continue working on SwiftWasm and related project. Many thanks to MacStadium for giving us access to Apple Silicon hardware. And obviously, these new releases wouldn't be possible without the hard work of our contributors, feedback from our users, and everyone working on the Swift project and libraries we depend on!

52 Likes