2025-03-23 00:25:22 +05:30
2025-03-23 00:25:22 +05:30
2025-03-22 23:11:33 +05:30
2025-03-21 22:39:32 +05:30

Monaco Code Execution Engine

Monaco is a secure, containerized code execution engine that allows you to run code in multiple programming languages through a simple REST API.

Features

  • Multi-language support: Run code in Python, Java, C, and C++
  • Secure execution: All code runs in isolated Docker containers
  • Resource limits: Memory, CPU, and file descriptor limits to prevent abuse
  • Concurrent processing: Efficient job queue for handling multiple requests
  • Simple REST API: Easy to integrate with any frontend

Architecture

Monaco consists of several components:

  • HTTP Handlers (handler/handler.go): Processes API requests
  • Execution Service (service/execution.go): Manages code execution in containers
  • Job Queue (queue/queue.go): Handles concurrent execution of code submissions
  • Submission Model (model/submission.go): Defines the data structure for code submissions

Requirements

  • Go 1.22.3 or higher
  • Docker
  • Network connectivity for container image pulling
Description
Monaco is a secure, containerized code execution engine that allows you to run code in multiple programming languages through a simple REST API and WebSocket connections for real-time terminal interaction.
Readme 74 MiB
Languages
JavaScript 59.2%
CSS 20.8%
Go 16.4%
Shell 1.4%
Dockerfile 1.1%
Other 1.1%