Add a Scala Library Dependency
Important constraints
- Golem Scala components compile to WebAssembly via Scala.js. Only Scala.js-compatible libraries will work.
- The artifact must be a Scala.js artifact — use the
%%%operator (triple percent) inbuild.sbtso sbt resolves the_sjs1_cross-published variant. - Libraries that depend on JVM-specific APIs (reflection,
java.io.File,java.net.Socket, threads, etc.) will not work. - Pure Scala libraries and libraries published for Scala.js generally work.
- If unsure whether a library supports Scala.js, add it and run
golem buildto find out.
Steps
-
Add the dependency to
build.sbtIn the component’s
build.sbt, add the library underlibraryDependencies:libraryDependencies += "com.example" %%% "library-name" % "1.0.0"Use
%%%(not%%) to get the Scala.js variant of the library. -
Build to verify
golem buildDo NOT run
sbt compiledirectly — always usegolem build. -
If the build fails
- Check if the library publishes a Scala.js artifact. Look for
_sjs1_in the Maven/Sonatype listing. - Check for JVM-only dependencies in the transitive dependency tree.
- Look for an alternative library that supports Scala.js.
- Check if the library publishes a Scala.js artifact. Look for
Already available libraries
These are already in the project’s build.sbt — do NOT add them again:
golem-scala-sdk— Golem agent framework, durability, transactionsscala-js-dom— DOM API bindings (if present)
HTTP and networking
Use the Golem SDK’s HTTP client utilities. Standard JVM networking (java.net) is not available in Scala.js/WASM.
Last updated on