A lightweight, stateless code execution engine with secure sandboxing and horizontal scalability.
Go
2
294 commits
updated Sep 19, 2026

A stateless, secure, multi-language code execution engine built for high performance and easy deployment.
Running untrusted code is not just execution — it is a security problem.
Most systems struggle with:
AlpineJudge solves this by treating code execution as a hardened infrastructure layer rather than a simple runtime task.
AlpineJudge has two stage deployment
git clone git@github.com:smsadat1/AlpineJudge.git
cd AlpineJudge
cp .env.example .env
docker compose up --build
Install the SDK:
pip install alpinejudge-sdk
ctr -n ajnamespace images pull ghcr.io/smsadat1/alpinejudge/master:v0.1.0
Submit a job:
import asyncio
from alpinejudge import AlpineJudge
async def main():
client = AlpineJudge()
await client.upload_testset(testset_path='path/to/testset', testset_id='testset_id')
with open("program.cpp", "r", encoding="utf-8") as file:
file_string = file.read()
async for event in client.submit_and_watch(
submission_id="submission_id",
language="cpp",
source= file_string,
testset_id="ts001",
memory_limit_mb=1024,
timeout_sec=20,
log_limit_kb=1024,
):
print(f"{event.type} {event.status} {event.details}")
if __name__ == "__main__":
asyncio.run(main())

AlpineJudge is designed around statelessness, isolation, predictability and reproducibility when executing untrusted code.
The system prioritizes:
AlpineJudge is composed of two subsystems:
Execution flow:
Client -> Dispatcher -> RunnerService -> Ajagent inside container
AlpineJudge is not a contest management platform. It intentionally remains stateless and does not manage users, contests, submissions, or persistent application data. Those responsibilities belong to the integrating application. AlpineJudge focuses solely on validating, scheduling, executing, and evaluating code submissions.
Detailed technical documentation is available in /docs:
docs/ARCHITECTURE.mddocs/API.mddocs/ADRsdocs/subsystems/dispatcher.mddocs/subsystems/runner294 commits
Go
87.8%
Python
7.8%
C++
2.5%
Dockerfile
1.8%
A lightweight, stateless code execution engine with secure sandboxing and horizontal scalability.
Go
2
294 commits
updated Sep 19, 2026

A stateless, secure, multi-language code execution engine built for high performance and easy deployment.
Running untrusted code is not just execution — it is a security problem.
Most systems struggle with:
AlpineJudge solves this by treating code execution as a hardened infrastructure layer rather than a simple runtime task.
AlpineJudge has two stage deployment
git clone git@github.com:smsadat1/AlpineJudge.git
cd AlpineJudge
cp .env.example .env
docker compose up --build
Install the SDK:
pip install alpinejudge-sdk
ctr -n ajnamespace images pull ghcr.io/smsadat1/alpinejudge/master:v0.1.0
Submit a job:
import asyncio
from alpinejudge import AlpineJudge
async def main():
client = AlpineJudge()
await client.upload_testset(testset_path='path/to/testset', testset_id='testset_id')
with open("program.cpp", "r", encoding="utf-8") as file:
file_string = file.read()
async for event in client.submit_and_watch(
submission_id="submission_id",
language="cpp",
source= file_string,
testset_id="ts001",
memory_limit_mb=1024,
timeout_sec=20,
log_limit_kb=1024,
):
print(f"{event.type} {event.status} {event.details}")
if __name__ == "__main__":
asyncio.run(main())

AlpineJudge is designed around statelessness, isolation, predictability and reproducibility when executing untrusted code.
The system prioritizes:
AlpineJudge is composed of two subsystems:
Execution flow:
Client -> Dispatcher -> RunnerService -> Ajagent inside container
AlpineJudge is not a contest management platform. It intentionally remains stateless and does not manage users, contests, submissions, or persistent application data. Those responsibilities belong to the integrating application. AlpineJudge focuses solely on validating, scheduling, executing, and evaluating code submissions.
Detailed technical documentation is available in /docs:
docs/ARCHITECTURE.mddocs/API.mddocs/ADRsdocs/subsystems/dispatcher.mddocs/subsystems/runner294 commits
Go
87.8%
Python
7.8%
C++
2.5%
Dockerfile
1.8%