This app is responsible for compiling and executing Scala code. It is organized in various sub-projects:
- The
serverproject defines a straight-forward TCP server that can receive Scala code and dependencies references, compile Scala code, and launch them by delegating to the externaljavacommand. - The
clientproject is an API to call the server - The
messagesproject defines the exchange protocol between the server and the client - The
scala-utilsproject 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