Scala
Scala 2 can be used to build WASM components through Scala.js and componentize.js (opens in a new tab)
componentize.js currently does not implement the JS Event Loop. So, if the code generated by
Scala.js uses functions like setTimeout the componentization won't work
Before starting, make sure you have the latest Rust version installed and have cargo in the path. The recommended way to do so is using https://rustup.rs (opens in a new tab):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup install stable && rustup default stableThen install the golem-scalajs-wit-bindgen CLI tool, which allows to generate Scala.js bindings from WIT files:
cargo install golem-scalajs-wit-bindgenYou will also need to have npm installed, you can check instructions here (opens in a new tab).
The easiest way to get started once the tooling is installed is to use the golem-cli new command as described in the Quickstart, for example:
golem-cli new --example scala2-shopping-cart --component-name my-shopping-cartBuilding the component
Creating the Golem component is just running:
sbt componentThe output is target/dist/component-name.wasm and it is ready to be uploaded to Golem Cloud. (the output file's name depends on the project!)