This Tangle Blueprint provides a secure code execution service that runs arbitrary code snippets in a Trusted Execution Environment (TEE). It supports multiple programming languages and ensures secure isolation through sandboxing and resource limits.
The service is designed to be:
- 🔒 Secure: Runs code in isolated environments with strict resource limits
- 🌐 Language-agnostic: Supports multiple programming languages
- ⚡ Fast: Optimized for quick code execution and response
- 🛡️ Safe: Leverages TEE for secure code execution
- 🔄 Scalable: Handles concurrent executions with proper resource management
Before running this project, ensure you have:
Install cargo-tangle:
cargo install cargo-tangle --git https://github.com/tangle-network/blueprint.git --force- Build the Project:
cargo build- Run Tests:
cargo test- Deploy the Blueprint:
cargo tangle blueprint deploycurl -X POST http://localhost:8080/execute \
  -H "Content-Type: application/json" \
  -d '{
    "language": "python",
    "code": "print(\"Hello, World!\")",
    "input": null,
    "timeout": 30
  }'Response format:
{
  "stdout": "Hello, World!\n",
  "stderr": "",
  "status": "success",
  "execution_time": 123,
  "memory_usage": 1024
}let result = execute_code(
    "python".to_string(),
    "print('Hello from Tangle!')",
    None,
    context
).await?;The service can be configured through environment variables:
- CODE_EXEC_PORT: HTTP server port (default: 8080)
- MAX_CONCURRENT_EXECUTIONS: Maximum concurrent code executions (default: 10)
Resource limits can be customized in ResourceLimits:
ResourceLimits {
    memory: 256 * 1024 * 1024,  // 256MB
    cpu_time: 30,               // 30 seconds
    processes: 32,              // Max 32 processes
    file_size: 10 * 1024 * 1024, // 10MB
    disk_space: 100 * 1024 * 1024, // 100MB
}The blueprint consists of several key components:
- CodeExecutionService: Core service managing code execution
- Sandbox: Isolated environment for secure code execution
- Language Executors: Language-specific execution implementations
- HTTP Server: RESTful API for code execution requests
- Resource Monitor: Tracks and limits resource usage
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)