This app is responsible for compiling and executing Scala code. It is organized in various sub-projects:
- The
server
project defines a straight-forward TCP server that can receive Scala code and dependencies references, compile Scala code, and launch them by delegating to the externaljava
command. - The
client
project is an API to call the server - The
messages
project defines the exchange protocol between the server and the client - The
scala-utils
project defines a library that will be accessible from any Scala process launched through the runner, making it easier to share behavior between courses
Simply run
sbt server/run
The server will start on port 2003, and will store temporary files in the tmp
folder of
the current working directory.
docker run -p 2003:2003 -e TMP_ROOT_PATH=/app/tmp rg.fr-par.scw.cloud/lambda/scala-runner-server:latest