freshcrate
Skin:/
Home > AI Agents > judge0

judge0

Robust, fast, scalable, and sandboxed open-source online code execution system for humans and AI.

Why this rank:Strong adoptionHealthy release cadence

Description

Robust, fast, scalable, and sandboxed open-source online code execution system for humans and AI.

README

Judge0 Wallpaper

Judge0

X (formerly Twitter) Follow X (formerly Twitter) Follow

LicenseReleaseStarsEstablished in August 2016.

Code execution made simple for every business.

Robust, fast, scalable, and sandboxed open-source online code execution system for humans and AI.

About

Judge0 (pronounced like "judge zero") is a robust, scalable, and open-source online code execution system. You can use it to build a wide range of applications that need online code execution features. Some examples include AI agents, competitive programming platforms, e-learning platforms, candidate assessment and recruitment platforms, online code editors, online IDEs, and many more.

Judge0 is an open-source online code execution system that enables the robust, fast, scalable, and sandboxed execution of AI-generated code, with support for multiple languages and frameworks.

In our research paper Robust and Scalable Online Code Execution System, we present Judge0's modern modular architecture that can be easily deployed and scaled. We study its design, comment on the various challenges in building such systems, and compare it with other available online code execution systems and online judge systems.

To see Judge0 in action, try Judge0 IDE - our free and open-source online code editor.

Features

  • Self-hostable or fully managed (SaaS)
  • Quick and easy self-hosting installation
  • Rich and verbose API documentation
  • Simple HTTP JSON API for easy integration
  • Official Python SDK for easy integration
  • Scalable architecture for handling high loads
  • Sandboxed compilation and execution of untrusted code
  • Support for 90+ languages (see the full list of supported languages)
  • Compilation and execution of multi-file programs (i.e. projects)
  • Support for additional files alongside the single-file user's program
  • Support for custom user-defined compiler options, command-line arguments, and time and memory limits
  • Detailed execution results
  • Webhooks (HTTP callbacks)

For more information about these and other features, please read the documentation.

Get Started

You have plenty of options to get started with Judge0:

  1. Use our Judge0 Cloud via Rapid
  2. Use our Judge0 Cloud by directly working with us
  3. Self-host Judge0 on your own infrastructure

Integrating Judge0 into your application is easy. You can either use our simple HTTP JSON API or use our official Python SDK.

HTTP JSON API

curl \
  -H "Content-Type: application/json" \
  -d '{
      "language_id": 109,
      "source_code": "print(f\"hello, {input()}\")",
      "stdin": "Alice"
  }' \
  "https://ce.judge0.com/submissions?wait=true"

Python SDK

# pip install judge0
import judge0
result = judge0.run(source_code="print(f'hello, {input()}')", stdin="Alice", language=judge0.PYTHON)
print(result.stdout)

Flavors

Judge0 comes in two flavors: Judge0 CE and Judge0 Extra CE. They differ mostly in the supported languages.

You can find the source code for Judge0 CE on the master branch, while you can find the source code for Judge0 Extra CE on the extra branch.

Citation

Please cite us if you use Judge0 in your research:

@INPROCEEDINGS{9245310,
  author={Došilović, Herman Zvonimir and Mekterović, Igor},
  booktitle={2020 43rd International Convention on Information, Communication and Electronic Technology (MIPRO)},
  title={Robust and Scalable Online Code Execution System},
  year={2020},
  volume={},
  number={},
  pages={1627-1632},
  keywords={Production systems;Operating systems;Systems architecture;Computer architecture;Programming profession;Open source software;Recruitment;online code execution system;online judge system;untrusted code execution},
  doi={10.23919/MIPRO48935.2020.9245310}
}

References

Industry

These companies, institutions, and organizations use Judge0.

Academia

These scientific articles cite Judge0.

Other Online References

Showcase

These open-source projects are using Judge0. You can add yours as well by creating a PR.

Community

Join our community - get help, share feedback, and contribute. Whether you're integrating Judge0, building with the API, or reporting bugs, your participation helps improve the project for everyone.

Author and Contributors

Judge0 was created by Herman Zvonimir Došilović in August 2016.

Thanks to all contributors for contributing to this project.

Changelog

You can find the detailed specification of changes between versions in the CHANGELOG.md.

Special Thanks

Special thanks to open-source projects without whom Judge0 wouldn't exist: Isolate, Docker, and Ruby on Rails.

License

Judge0 is licensed under the GNU General Public License v3.0.

Release History

VersionChangesUrgencyDate
v1.13.1# v1.13.1 (2024-04-18) Security researcher [Daniel Cooper](https://www.linkedin.com/in/daniel-cooper4) (@stacksparrow4) found three critical vulnerabilities in Judge0 versions `<= 1.13.0`, which this release fixes. Thank you, Daniel, for your contribution. ## Security Fixes This release fixes the following security vulnerabilities: - [CVE-2024-28185](https://github.com/judge0/judge0/security/advisories/GHSA-h9g2-45c8-89cf) - [CVE-2024-28189](https://github.com/judge0/judge0/security/advisLow4/18/2024
v1.13.1-extra# v1.13.1-extra (2024-04-18) Security researcher [Daniel Cooper](https://www.linkedin.com/in/daniel-cooper4) (@stacksparrow4) found three critical vulnerabilities in Judge0 versions `<= 1.13.0-extra`, which this release fixes. Thank you, Daniel, for your contribution. ## Security Fixes This release fixes the following security vulnerabilities: - [CVE-2024-28185](https://github.com/judge0/judge0/security/advisories/GHSA-h9g2-45c8-89cf) - [CVE-2024-28189](https://github.com/judge0/judge0/seLow4/18/2024
v1.13.0# v1.13.0 (2021-03-10) Huge thanks to [**Filtered**](https://www.filtered.ai) for sponsoring this release. ## New Features - Added support for `enable_network` configuration flag. With the new `ALLOW_ENABLE_NETWORK` configuration variable, usage of this flag can be permitted or denied. Furthermore, with the new `ENABLE_NETWORK` configuration variable the default value of this flag can be set for every submission. - Commits: [@62a00520](https://github.com/judge0/judge0/commit/62a0052069Low3/10/2021
v1.13.0-extra# v1.13.0-extra (2021-03-10) Huge thanks to [**Filtered**](https://www.filtered.ai) for sponsoring this release. ## New Features - Added **4 new languages** and archived 4 languages. In total, there are **21 active languages**. Archived languages cannot be used anymore. |ID|Name|Status| |---|---|---| |16|C# (.NET Core SDK 3.1.302)|archived| |17|C# (Mono 6.10.0.104)|archived| |18|C# Test (.NET Core SDK 3.1.302, NUnit 3.12.0)|archived| |19|F# (.NET Core SDK 3.1.302)|archived| |21|C#Low3/10/2021
v1.12.0# v1.12.0 (2020-10-18) ## New Features - Added support for invalidating statistics cache using the `invalidate_cache` query parameter. - Commits: [@561c2a30](https://github.com/judge0/judge0/commit/561c2a309d98680801628fc2d79ea17e885e1d66) - Added rake task `judge0:run_in_queue` to manually run submissions that might have stuck in the `In Queue` state. - Commits: [@c3b87d23](https://github.com/judge0/judge0/commit/c3b87d232a8e922b5ae04f5afdb12fc49b2ec003) - Added support for specifLow10/18/2020
v1.12.0-extra# v1.12.0-extra (2020-10-18) ## New Features - Added support for invalidating statistics cache using the `invalidate_cache` query parameter. - Commits: [@561c2a30](https://github.com/judge0/judge0/commit/561c2a309d98680801628fc2d79ea17e885e1d66) - Added rake task `judge0:run_in_queue` to manually run submissions that might have stuck in the `In Queue` state. - Commits: [@c3b87d23](https://github.com/judge0/judge0/commit/c3b87d232a8e922b5ae04f5afdb12fc49b2ec003) - Added support for Low10/18/2020
v1.11.0# v1.11.0 (2020-09-09) ## New Features - Added queue size into response of `/workers`. - Issues: [#210](https://github.com/judge0/judge0/issues/210) - Commits: [@7ee1b10c](https://github.com/judge0/judge0/commit/7ee1b10c79576e745140f02d49446d57a208bcca) ## Improvements - Set configuration defaults even if `judge0.conf` is not present. Thank you @vvalchev. - Issues: [#206](https://github.com/judge0/judge0/issues/206) - Commits: [@8c42f7be](https://github.com/judge0/judgeLow9/9/2020
v1.11.0-extra# v1.11.0-extra (2020-09-09) Huge thanks to [AlgoDaily](https://algodaily.com) for sponsoring this release. ## New Features - Added **8 new languages**, and in total there are now **21 active languages**. |ID|Name|Note| |---|---|---| |13|C (Clang 9.0.1)|| |14|C++ (Clang 9.0.1)|| |15|C++ Test (Clang 10.0.1, Google Test 1.8.1)|| |16|C# (.NET Core SDK 3.1.302)|Sponsored by [AlgoDaily](https://algodaily.com).| |17|C# (Mono 6.10.0.104)|Sponsored by [AlgoDaily](https://algodaily.com).| Low9/9/2020
v1.10.0# v1.10.0 (2020-07-27) ## New Features - Added support for multi-file programs in the terms of adding a new special language called **Multi-file program**. In total there are now **47 active languages**. |ID|Name|Note| |---|---|---| |89|Multi-file program|| Multi-file programs allow you specify your own compilation and execution scripts that Judge0 will use. To use multi-file program feature you need to choose a language called *Multi-file program* whoose ID is **89**. Moreover, youLow7/27/2020
v1.9.0# v1.9.0 (2020-06-10) Huge thanks to [**Filtered**](https://www.filtered.ai) for sponsoring this release. ## New Features - Added support for configuration variable `RAILS_SERVER_PROCESSES` which allows to create multiple processes for handling requests. ## Other Changes - Updated gems. ## Deployment Procedure Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more aboLow6/9/2020
v1.8.0# v1.8.0 (2020-05-28) Huge thanks to [**Filtered**](https://www.filtered.ai) for sponsoring this release. ## New Features - Added **4 new languages**, and in total there are now **46 active languages**. |ID|Name|Note| |---|---|---| |85|Perl (5.28.1)|Sponsored by [Filtered](https://www.filtered.ai).| |86|Clojure (1.10.1)|Sponsored by [Filtered](https://www.filtered.ai).| |87|F# (.NET Core SDK 3.1.202)|Sponsored by [Filtered](https://www.filtered.ai).| |88|Groovy (3.0.3)|Sponsored by Low5/28/2020
v1.7.1# v1.7.1 (2020-05-06) ## Bug Fixes - Compile Swift before executing since default file size limit of 1MB for execution is not enough for Swift to run successfully. Compilation has a file size limit of 4MB by default which seems to be enough for Swift to compile. Thanks @OliverwengFiltered. - Issues: [#154](https://github.com/judge0/api/issues/154) - Commits: [@371e2463](https://github.com/judge0/api/commit/371e246312a41242033d916f1f4fea3db80015b7) - Fixed environment loading for TelLow5/6/2020
v1.7.0# v1.7.0 (2020-05-05) Huge thanks to sponsors of this release: [**Filtered**](https://www.filtered.ai) and [**Evalart**](https://evalart.com). ## New Features - Added **10 new languages**, and in total there are now **42 active languages**. |ID|Name|Note| |---|---|---| |75|C (Clang 7.0.1)|| |76|C++ (Clang 7.0.1)|| |77|COBOL (GnuCOBOL 2.2)|Sponsored by [Evalart](https://evalart.com).| |78|Kotlin (1.3.70)|Sponsored by [Filtered](https://www.filtered.ai).| |79|Objective-C (Clang 7.0.1Low5/5/2020
v1.6.0# v1.6.0 (2020-05-01) ## New Features - Added support for automatically redirecting stderr to stdout of the running program with the configuration flag `redirect_stderr_to_stdout`. Added configuration variable `REDIRECT_STDERR_TO_STDOUT` that can be used for setting default behaviour for every submission. - Commits: [@8e6617aa](https://github.com/judge0/api/commit/8e6617aae2d4dd9106ab610738dcc5e59633b2f4) - Added configuration variable `DISALLOW_ORIGIN` that can be used for disabling CORLow5/1/2020
v1.5.0# v1.5.0 (2020-01-01) ## New Features - Added **30 new languages**, archived 42 languages and kept active 2 languages from the last release. In total, there are now **32 active languages** that can be used and all are updated to their latest versions as of the date of this release. Archived languages cannot be used anymore. Following table shows a status of every language that API supports. - Issues: [#51](https://github.com/judge0/api/issues/51) [#90](https://github.com/judge0/api/issueLow1/2/2020
v1.4.0# v1.4.0 (2019-10-31) ## New Features - Added support for `compiler_options` and `command_line_arguments`. - Added configuration variables `ENABLE_COMPILER_OPTIONS`, `ALLOWED_LANGUAGES_FOR_COMPILER_OPTIONS` and `ENABLE_COMMAND_LINE_ARGUMENTS` for controlling usage of compiler options and command line arguments. ## Security Improvements - Run compilation process for compiled languages inside sandbox and use values of *limit configuration variables* for controlling sandbox resources. - MovLow10/31/2019
v1.3.1# v1.3.1 (2019-09-16) ## Improvements - Improved handling exec format error by introducing new status **Exec Format Error**. - Commits: [@93a60115](https://github.com/judge0/api/commit/93a601159187d67d1ca52e8c06ebecd8318ed6c3) ## Bug Fixes - Fixed bug where execution of Go code with no `main` package would induce `execve("./main"): No such file or directory` because Go compiler wouldn't create `main` binary. - Commits: [@93a60115](https://github.com/judge0/api/commit/93a601159187Low9/15/2019
v1.3.0# v1.3.0 (2019-09-15) ## New Features - Added `MAX_QUEUE_SIZE` variable that defines a maximum submission queue size. If there is a new submission request and the queue is full, then that submission will be rejected. - Commits: [@a2bcdecb](https://github.com/judge0/api/commit/a2bcdecbb99dbd8d3875e2f95bdf71f12e34f495) ## Improvements - Improved worker shutdown procedure. Workers are now gracefully shutdown on `docker stop`. - Commits: [@2ae0cd31](https://github.com/judge0/api/commLow9/15/2019
v1.2.2# v1.2.2 (2019-09-07) ## Securty Fixes - Fixed a bug that allowed anybody to read `judge0-api.conf` file. This bug was introduced in version [v1.2.1](https://github.com/judge0/api/releases/tag/v1.2.1) when config was mounted into container. With this fix, config is still mounted into container but not in `/usr/src/api` folder but rather in `/`. Root folder is not binded in isolate sandbox, whereas `/usr/src/api` is. - Commits: [@121c8f9d](https://github.com/judge0/api/commit/121c8f9de8d89b4Low9/7/2019
v1.2.1# v1.2.1 (2019-08-24) ## Improvements - Improved config loading. Config can now be changed and reload just with `docker-compose restart` command. - Commits: [@06fc37f1](https://github.com/judge0/api/commit/06fc37f16571840e87c41658807da20a08358926) ## Bug Fixes - Fixed bug in `run-worker` script that didn't consider `COUNT` config variable. - Issues: [#91](https://github.com/judge0/api/issues/91) - Commits: [@06fc37f1](https://github.com/judge0/api/commit/06fc37f16571840e87c4165880Low8/24/2019
v1.2.0-nim0.20.0# v1.2.0-nim0.20.0 (2019-06-26) This image contains only [The Nim Programming Language](https://nim-lang.org). Free public instance of this image is available on https://nim.api.judge0.com. This image was build for the purpose of creating dedicated web playground for this language, and in the future I will add and deploy every new release of it. In the [`nim`](https://github.com/judge0/api-base/tree/nim) branch of Judge0 API Base I will follow and install new releases of Nim, and in the [`niLow6/26/2019
v1.2.0-vlang0.1.3# v1.2.0-vlang0.1.3 (2019-06-26) This image contains only [The V Programming Language](https://vlang.io), specifically only V compiler built from commit [@b00a47be](https://github.com/vlang/v/commit/b00a47be66e868b087146feb7999fd72f2af3da0). Free public instance of this image is available on https://vlang.api.judge0.com. This image was build for the purpose of creating dedicated web playground for this new programming language, and in the future I will add and deploy every new release of it.Low6/26/2019
v1.2.0# v1.2.0 (2019-06-17) ## New Features - Added new language **Executable** that allows executing custom executable files. - Commits: [@0ab08351](https://github.com/judge0/api/commit/0ab08351f59ae75d9626b6941be3728b48e835db) - Added new configuration variables: `REDIS_PASSWORD`, `REDIS_PORT` and `POSTGRES_PORT`. - Commits: [@962d7d1d](https://github.com/judge0/api/commit/962d7d1dcff051357de492f2d31e996405b1d125) ## Improvements - Improved `run-server` and `run-worker` scripts. - CoLow6/17/2019
v1.1.5-python3.6.8# v1.1.5-python3.6.8 (2019-03-08) On @guvenim [request](https://github.com/judge0/api/issues/67) I have built an Judge0 API image that contains just Python 3.6.8. This release also shows what changes are necessary in [api-base](https://github.com/judge0/api-base/commit/bfde9426e4a3d44098dab2a2d082e02de2bc5be5) and [api](https://github.com/judge0/api/commit/9f9f5cd0577a724d66be934c11d2e57b2b3fc705) when you only want to use languages that you need. ## Deployment Procedure 1. Install [DockeLow3/8/2019
v1.1.5# v1.1.5 (2019-02-17) ## Bug Fixes - Fixed problem with assigning compile output to submission when rerunning submission. - Commits: [@c3cd0232](https://github.com/judge0/api/commit/c3cd023258a4ec48949d4ee2310bc39a2f40cac9) ## Other Changes - Remove unwanted newlines from compile output. - Commits: [@c3cd0232](https://github.com/judge0/api/commit/c3cd023258a4ec48949d4ee2310bc39a2f40cac9) ## Deployment Procedure 1. Install [Docker](https://docs.docker.com) and [Docker Compose](hLow3/8/2019
v1.1.4# v1.1.4 (2019-02-17) ## Bug Fixes - Fixed problem with assigning compile output to submission when compile output is not empty. - Commits: [@22403707](https://github.com/judge0/api/commit/224037078325dfe02f5fbf191a55513582ca84b5) ## Deployment Procedure 1. Install [Docker](https://docs.docker.com) and [Docker Compose](https://docs.docker.com/compose). 2. Download and extract release archive: ``` wget https://github.com/judge0/api/releases/download/v1.1.4/judge0-api-v1.1.4.zip unzipLow3/8/2019
v1.1.3# v1.1.3 (2019-02-15) ## Improvements - Improved cleanup of sandbox by deleting stdin, stdout, stderr and meta file before running isolate cleanup. - Commits: [@1dcfaf98](https://github.com/judge0/api/commit/1dcfaf98536fc55fe200c57de10540de64936654) ## Bug Fixes - Fixed problem with compile output that contained invalid byte sequence in UTF-8. - Commits: [@37d46b14](https://github.com/judge0/api/commit/37d46b140c75aaafeca35ffc36e53746e0905387) - Fixed problem with submissions not Low3/8/2019
v1.1.2# v1.1.2 (2019-02-15) ## Improvements - Improved reading from stdin and writing to stdout, stderr and meta. They are now not available in sandbox. - Commits: [@1f135c1a](https://github.com/judge0/api/commit/1f135c1a53f5039b52de5e9c78764c80a7ed3945) [@350ff3a4](https://github.com/judge0/api/commit/350ff3a4705b6d83ef4f1188de52586cbb87e693) ## Bug Fixes - Fixed writing of source code and stdin to disc, they are now written as binary files to avoid UTF-8 problems. - Commits: [@519efbea](Low3/8/2019
v1.1.1# v1.1.1 (2019-02-13) ## Bug Fixes - Fixed a problem when `strip` method was called on a `nil` class when expected output was `nil`. - Commits: [@b25153e9](https://github.com/judge0/api/commit/b25153e9450569c995e8f3afe036fed4ad58726c) ## Other Changes - Don't let worker update submission's `finished_at` attribute if it already exists. This allows Judge0 API administrators to manually rerun submissions from command line and preserve initial timestamps if some unexpected error occured. Low2/19/2019
v1.1.0# v1.1.0 (2019-02-10) ## New Features - Added `-lm` compile flag to link with math library when compiling C source code. - Pull Requests: [#60](https://github.com/judge0/api/pull/60) - Added fixed time limit of 10 seconds for compilation. - Issues: [#63](https://github.com/judge0/api/issues/63) [#64](https://github.com/judge0/api/issues/64) - Commits: [@2f05ce2c](https://github.com/judge0/api/commit/2f05ce2c9305fccaeb0c08e23d645736593d787e) ## Improvements - Improved procedure Low2/19/2019
v1.0.0# v1.0.0 (2017-10-01) This is the first production ready release of Judge0 API. ## Deployment Procedure 1. Install [Docker](https://docs.docker.com) and [Docker Compose](https://docs.docker.com/compose). 2. Download and extract release archive: ``` wget https://github.com/judge0/api/releases/download/v1.0.0/judge0-api-v1.0.0.zip unzip judge0-api-v1.0.0.zip ``` 3. Run all services and wait few seconds until everything is initialized: ``` cd judge0-api-v1.0.0 docker-compose up -d Low2/19/2019
v0.1.2## Features - save to database `source_code`, `stdin`, `stdout` and `stderr` as base64 encoded - allow client to send base64 encoded data with `base64_encoded` query parameter - allow client to recieve base64 encoded data with `base64_encoded` query parameter - allow admins to specify number of workers to run - allow admins to specify number of Rails threads to use - presist Redis data - use Resque Web in development by visiting http://localhost:3033 ## Bug fixes - fixed issue with tiLow4/24/2017
v0.1.1# Changes - support for JavaScript with NodeJS v6.10.1 and v4.8.1 (thanks a lot @cesar :smile:) # Run on your server 1. Save attached `docker-compose.prod.yml` on your server as `docker-compose.yml` 2. Save attached `judge0-api.conf` on your server. 3. In `judge0-api.conf` change following variables: `RAILS_ENV` and `ALLOW_ORIGIN`. 4. Run database: ``` $ docker-compose up -d db ``` 5. Run all other services: ``` $ docker-compose up -d ``` Low3/28/2017
v0.1.01. Save attached `docker-compose.prod.yml` on your server as `docker-compose.yml` 2. Save attached `judge0-api.conf` on your server. 3. In `judge0-api.conf` change following variables: `RAILS_ENV` and `ALLOW_ORIGIN`. 4. Run database: ``` $ docker-compose up -d db ``` 5. Run all other services: ``` $ docker-compose up -d ``` Low2/5/2017

Dependencies & License Audit

Loading dependencies...

Similar Packages

claw-marketEnable autonomous agents to create, trade, and scale digital products and services across decentralized marketplaces efficiently.main@2026-06-02
LifebloodCompiler truth in, AI context out. Open semantic glue between language intelligence and AI tools.v0.7.11
ai-coding-rules🤖 Enhance AI coding assistants with battle-tested rules for reliability, predictability, and effectiveness in your projects.main@2026-06-01
claude-ruby-grape-railsClaude Code plugin for Ruby, Rails, Grape, PostgreSQL, Redis, and Sidekiq developmentv1.16.13
justoneapi-mcpProduction-ready MCP server exposing JustOneAPI endpoints to AI agents with raw JSON responses.main@2026-06-06

More in AI Agents

hermes-agentThe agent that grows with you
awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.
CopilotKitThe Frontend Stack for Agents & Generative UI. React + Angular. Makers of the AG-UI Protocol
e2bE2B SDK that give agents cloud environments