The Artemis Java Test Sandbox
Ares 2 is a framework for the easy and secure remote execution of student submissions on an interactive learning platform. It is the second Java-based implementation of the Secure COder Remote Execution (SCORE) framework, and the first to support Java 25 and later.
- Policy-based sandboxing through static analysis and runtime instrumentation, to prevent unsafe operations and reduce cheating
- More robust tests and builds, through limits on time, threads and IO
- Public and hidden tests, where hidden tests obey a custom deadline
- Better feedback, including multiline error message processing and likely fault locations
- Console interaction testing for exercises using
System.outandSystem.in
Ares 2 requires at least Java 17.
<dependency>
<groupId>de.tum.cit.ase</groupId>
<artifactId>ares</artifactId>
<version>2.1.5</version>
</dependency>implementation("de.tum.cit.ase:ares:2.1.5")📖 https://ls1intum.github.io/Ares2/
- Instructor Documentation — install Ares 2, wire it into a Maven or Gradle build, write a security policy, and understand what it does and does not protect against
- Contributor Documentation — the technologies Ares 2 is built on, the policy model and the subsystems
The documentation source lives in documentation/.
Complete, runnable exercises are in examples/:
Maven and Gradle.
Contributions are welcome. Please read CONTRIBUTING.md for the build commands, the four enforcement mode combinations CI exercises, and the pull request process. Participation is governed by our Code of Conduct.
Found a security vulnerability? Please do not open a public issue; follow SECURITY.md.
If you use Ares 2 in your work, please cite it using the metadata in CITATION.cff.
Ares 2 is licensed under the MIT Licence. See LICENSE for details.
Ares 2 is the successor to Ares 1, created by Christian Femers and likewise MIT licensed. Parts of that original work live on in Ares 2, so both copyright notices are retained; see NOTICE for the attribution.