{"id":21819938,"url":"https://github.com/dmoj/java-sandbox-agent","last_synced_at":"2025-04-14T02:41:53.508Z","repository":{"id":47067123,"uuid":"112045120","full_name":"DMOJ/java-sandbox-agent","owner":"DMOJ","description":"Java class sandbox with instrumentation support for online judges.","archived":false,"fork":false,"pushed_at":"2024-06-03T03:32:28.000Z","size":47,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-27T16:41:45.907Z","etag":null,"topics":["instrumentation","java","online-judge","policy","sandbox"],"latest_commit_sha":null,"homepage":"https://dmoj.ca","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DMOJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-26T00:44:02.000Z","updated_at":"2025-02-17T21:31:41.000Z","dependencies_parsed_at":"2023-12-21T21:41:18.043Z","dependency_job_id":"c6f1d696-b629-4247-9efd-bb25617b33dd","html_url":"https://github.com/DMOJ/java-sandbox-agent","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fjava-sandbox-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fjava-sandbox-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fjava-sandbox-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fjava-sandbox-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DMOJ","download_url":"https://codeload.github.com/DMOJ/java-sandbox-agent/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248812242,"owners_count":21165392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["instrumentation","java","online-judge","policy","sandbox"],"created_at":"2024-11-27T16:27:16.685Z","updated_at":"2025-04-14T02:41:53.448Z","avatar_url":"https://github.com/DMOJ.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# java-sandbox-agent [![Build Status](https://github.com/DMOJ/java-sandbox-agent/workflows/build/badge.svg)](https://github.com/DMOJ/java-sandbox-agent/actions/)\nJava class sandbox with instrumentation support for online judges. \n\nIt implements:\n\n* a much faster, [unsynchronized ASCII-only `System.out` stream](https://github.com/DMOJ/java-sandbox-agent/blob/master/src/main/java/ca/dmoj/java/UnsafePrintStream.java) that's suitable for single-threaded online-judging scenarios\n* support for **disallowing particular classes from being loaded**, to force certain solutions trivialized by the standard library\n* optional **unbuffering of standard output**, for interactive problems without requiring users to flush manually\n* logging of exceptional exits to a state file\n\n## Usage\n\nTo run a class `Submission` with agent the following suffices:\n\n```\n$ java -client -javaagent:/code/java-sandbox-agent.jar=[option, ...] Submission\n```\n\nSupported fields for the `option` list are:\n\n* `nobigmath` \u0026mdash; disables `BigInteger` and `BigDecimal`, raising [appropriate exceptions](https://github.com/DMOJ/java-sandbox-agent/blob/master/src/main/java/ca/dmoj/java/BigIntegerDisallowedException.java) if they are used\n* `unicode` \u0026mdash; encodes `System.out` as UTF-8 instead of ASCII, sacrificing performance for Unicode support\n* `nobuf` \u0026mdash; sets `System.out` as being line-buffered, for interactive problems\n* `unsafe` \u0026mdash; enables `sun.misc.Unsafe`, which is disabled by default\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmoj%2Fjava-sandbox-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmoj%2Fjava-sandbox-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmoj%2Fjava-sandbox-agent/lists"}