Application that executes code safely, within UML virtual machines.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
devtools
docs
environments @ e6e47e3
go
tasks
vm
.gitignore
.gitmodules
.travis.yml
AUTHORS
CONTRIBUTORS
Dockerfile
LICENSE
Makefile
README.md

README.md

Pythia-core Build Status Documentation Status Join the chat at https://gitter.im/pythia-project/pythia

Pythia-core is the backbone of the Pythia framework. It manages a pool of UML virtual machines and is in charge of the safe execution of low-level jobs. Pythia-core is written in Go and can be easily distributed on several machines or in the cloud.

Quick Install

Since the pythia-core framework uses UML-based virtual machines, it can only be run on Linux.

Start by installing required dependencies:

  • Make (4.0 or later)
  • Go (1.2.1 or later)
  • SquashFS tools (squashfs-tools)
  • Embedded GNU C Library (libc6-dev-i386)

Then, clone the Git repository, and launch the installation:

> git clone --recursive https://github.com/pythia-project/pythia-core.git
> cd pythia-core
> make

Once successfully installed, you can try to execute a simple task:

> cd out
> touch input.txt
> ./pythia execute -input="input.txt" -task="tasks/hello-world.task"

and you will see, among others, Hello world! printed in your terminal.

Use with Docker

Docker allow the pythia-core framework to run on MacOS or Windows installation.

Start by cloning the git repository and build the docker image:

> git clone --recursive https://github.com/pythia-project/pythia-core.git
> cd pythia-core
> docker build -t pythia-core .

Once the image is successfully built, you can now start the image:

> docker run -dit -p 8080:8080 --security-opt seccomp:unconfined --privileged pythia-core
> docker exec -it --privileged CONTAINER_ID bash
> mount /dev/shm
> cd out && touch input.txt
> ./pythia execute -input="input.txt" -tasks="tasks/hello-world.task"

You can obtain the container id using docker ps. You should see among others, Hello world! printed in your terminal.

Contributors

  • Sébastien Combéfis
  • Vianney le Clément de Saint-Marcq
  • Charles Vandevoorde
  • Virginie Van den Schrieck