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.