scala-stm / scala-stm   0.11.1

BSD 3-clause "New" or "Revised" License Website GitHub

A library-based Software Transactional Memory (STM) for Scala, coupled with transactional sets and maps. Mirror of

Scala versions: 3.x 2.13 2.12 2.11
Scala.js versions: 1.x

Build Status Maven Central


ScalaSTM is a lightweight software transactional memory for Scala, inspired by the STMs in Haskell and Clojure. It was written by Nathan Bronson and the Scala STM Expert Group, and it is published under a BSD 3-Clause License.

ScalaSTM is available on the JVM for Scala 2.13, 2.12, 2.11, and Dotty (JVM), and on JS for Scala 2.13. It is also possible to use the library from Java, see JavaAPITests.

You can use it in your sbt build file as follows:

libraryDependencies += "org.scala-stm" %% "scala-stm" % "0.11.0"

Use %%% for Scala.js.

Or in Maven:


For download info and documentation see

For the design of the library, see the paper