Version Matrix

ScaFi (Scala Fields)

ScaFi is a Scala-based library and framework for Aggregate Programming. It implements a variant of the Higher-Order Field Calculus (HOFC) operational semantics, which is made available as a usable domain-specific language (DSL), and provides a platform and API for simulating and executing Aggregate Computing systems and applications.

Please refer to the ScaFi main website and ScaFi Documentation the for further information.


Status Badges

Stable branch

Build Status

Development branch

Build Status

Notes for developers

Import via Maven/sbt/Gradle

Add the dependency to scafi in your project (e.g., via sbt or Gradle)

val scafi_version = "0.3.3"

val scafi_core  = "it.unibo.apice.scafiteam" %% "scafi-core"  % scafi_version
val scafi_simulator  = "it.unibo.apice.scafiteam" %% "scafi-simulator"  % scafi_version
val scafi_simulator_gui  = "it.unibo.apice.scafiteam" %% "scafi-simulator-gui"  % scafi_version
val scafi_platform = "it.unibo.apice.scafiteam" %% "scafi-distributed"  % scafi_version

libraryDependencies ++= Seq(scafi_core, scafi_simulator, scafi_platform)

Release Highlights

v0.3.3 (2020-04-10)

  • Cross-compilation to Scala 2.13 (in addition to 2.11 and 2.12)
  • Gradle build in addition to the sbt build
  • 3D Renderer (by @AleGnucci)
  • New simulator GUI (by @cric96)
  • Handle serialization in spala and scafi-distributed (contribution by @manuelperuzzi)
  • Various library fixes and adjustments

0.3.2 (2018-10-19)

  • Aggregate processes with spawn constructs
  • Adjustments to operational semantics
  • Refactoring of modules (e.g., stdlib brought into core)
  • More features in the standard library
  • Bug fixes, tests, etc.

0.3.0 (2018-03-27)

  • stdlib module
  • align construct

0.2.0 (2017-06-28)

  • Several important adjustments to the core operational semantics (and more tests)
  • Refactoring of the field calculus interpreter
  • A basic graphical simulator (contribution by C. Varini) has been added as a separate module simulator-gui
  • Cross compilation for Scala 2.11 and 2.12


Main Researchers and Authors

  • Mirko Viroli
  • Roberto Casadei

Research Collaborators

  • Ferruccio Damiani
  • Giorgio Audrito


scafi is Open Source and available under the Apache 2 License.