sirkrypt0 36dc99f019 Don't embed the execution.Storer interface into a runner
Previously, the execution.Storer interface was embedded in the Runner interface.
However, this resulted in calls like runner.Add(...) to add an execution to the
store which is kind of ugly. Thus, we decided to add only the required functions to
the runner interface and make the execution.Storer a field of the implementation.
2021-07-30 14:28:06 +02:00
2021-07-21 12:55:35 +02:00
2021-07-30 12:22:10 +00:00
2021-07-29 15:03:41 +00:00
2021-07-29 13:42:39 +00:00
2021-07-13 08:59:25 +02:00
2021-07-29 09:57:04 +00:00
2021-07-29 09:57:04 +00:00
2021-07-29 13:42:39 +00:00
2021-07-30 09:16:30 +02:00
2021-07-30 12:22:10 +00:00

Poseidon

pipeline status coverage report

Poseidon logo

Poseidon provides containerized execution of arbitrary user code inside a Docker container for learning purposes. It has two main purposes:

  1. Securing the executions so that they are isolated from each other and from the host system.
  2. Being scalable enough to provide hundreds of executions per minute.

Poseidon also offers a live I/O connection to the running program via WebSocket.

Poseidon as mediator between CodeOcean and Nomad.

Poseidon is designed to be used with CodeOcean, a code-execution provider and auto-grader used in MOOC platforms.

Poseidon requires a Nomad cluster for scheduling its executions, which needs to be set up separately.

Documentation

For the OpenAPI 3.0 definition of the API Poseidon provides, see the swagger.yaml.

For the rest of the documentation see the docs folder. It describes...

Description
No description provided
Readme MIT 2.6 MiB
Languages
Go 96.3%
Makefile 2.8%
HCL 0.7%
Dockerfile 0.2%