camisole is a secure online judge for code compilation and execution. You give some untrusted source code and a test suite, and camisole compiles the code and runs it against the test suite.

It uses isolate as a backend to safely compile and execute source codes using Linux kernel features such as namespaces, cgroups, chroot and resources limits.

camisole is aimed at:

Computer science teachers who want to grade their students or provide them with an online tool to check their own code.

or provide them with an online tool to check their own code. Programming contests who want to grade the submissions of the contestants with an online judge .

. Programming websites who want to have an interactive demo where people can run arbitrary code .

. Online compiler/interpreter websites.

camisole handles all major languages, and can be easily extended to support more. The built-in languages are:

Ada, C, C#, C++, D, Go, Haskell, Java, Javascript, Lua, OCaml, PHP, Pascal, Perl, Prolog, Python, Ruby, Rust, Scheme.

Communication with the camisole engine relies on a simple HTTP API with JSON or MessagePack serialization.

You can contribute to the project development on GitHub by reporting issues, making suggestions or opening pull requests.

Check out Quickstart for a quick outlook of camisole features and usage.