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
You can use it in your sbt build file as follows:
libraryDependencies += "org.scala-stm" %% "scala-stm" % "0.11.0"
%%% for Scala.js.
Or in Maven:
<dependency> <groupId>org.scala-stm</groupId> <artifactId>scala-stm_2.13</artifactId> <version>0.11.0</version> </dependency>
For download info and documentation see http://scala-stm.org
For the design of the library, see the paper
- Bronson, N. G., Chafi, H., & Olukotun, K. CCSTM: A Library-Based STM for Scala. Proceedings of the First Annual Scala Workshop. Lausanne, 2010