camisole’s documentation

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 [1] 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.
  • 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.