
ScalaLoci is a distributed programming language embedded into Scala.
The language provides a coherent model based on placement types that enables
reasoning about distributed data flows, supporting multiple software
architectures via dedicated language features and abstracting over low-level
communication details and data conversions. ScalaLoci simplifies developing
distributed systems, reduces error-prone communication code and favors early
detection of bugs.
Getting ScalaLoci
Using ScalaLoci network communication as a library
ScalaLoci’s underlying network communication library abstracting over different
network protocols can be used directly without ScalaLoci’s language
abstractions. The library provides pluggable communicators for different
network protocols and transmitters implementing the remote transmission
semantics for values of different types.
Add the ScalaLoci dependencies that you need for your system to your build.sbt
:
-
ScalaLoci communication library (always required)
libraryDependencies +=
"io.github.scala-loci" %% "scala-loci-communication" % "0.5.0"
-
Transmitter for the types of values to be accessed remotely
(built-in Scala types and standard collections are directly supported without additional dependencies)
-
Network communicators to connect the different components of the distributed system (same as above)
-
Serializer for network communication (same as above)
Examples and Case Studies