Repolode
capsulerun

capsulerun/runtime

Runtime para ejecutar código no confiable de agentes de IA en sandboxes aislados de WebAssembly, con límites de CPU, memoria y tiempo por tarea.

Estrellas
303
Forks
22
Issues abiertos
0
Último commit
hace 26 días

¿Qué es?

Capsule es un runtime para ejecutar código no confiable en entornos aislados. Cada tarea se ejecuta en su propio sandbox de WebAssembly, separado del sistema anfitrión. Los desarrolladores marcan funciones de Python o TypeScript/JavaScript con un wrapper de tarea, y el runtime compila el archivo a WebAssembly y lo ejecuta.

A cada tarea se le puede asignar un nivel de cómputo, un límite de RAM, un tiempo de espera y un número de reintentos. El consumo de CPU se controla mediante la medición de fuel de WebAssembly. El acceso a archivos se limita a directorios permitidos explícitamente, en modo de solo lectura o lectura y escritura, y el acceso a la red saliente se restringe a una lista de hosts permitidos. Las variables de entorno solo se exponen si se incluyen en la lista. Cada ejecución devuelve un objeto JSON con el resultado, los detalles de los errores y métricas de ejecución, como la duración, el fuel consumido y el pico de memoria.

El proyecto ofrece una CLI (capsule run, capsule build) y SDK de Python y npm, incluida una función run() para llamar a tareas aisladas desde el código anfitrión. Los paquetes de Python que dependen de extensiones C deben tener una compilación para wasm32-wasi para poder ejecutarse en el sandbox.

Funciones clave

  • 01Ejecuta cada tarea en su propio sandbox de WebAssembly, aislado del sistema anfitrión.
  • 02Limita el uso de CPU mediante la medición de fuel y permite configurar la RAM y el tiempo de espera de cada tarea.
  • 03Restringe el acceso a archivos a los directorios indicados, en modo de solo lectura o lectura y escritura.
  • 04Permite conexiones HTTP salientes solo a dominios incluidos en la lista de permitidos.
  • 05Admite tareas de Python y TypeScript/JavaScript con reintentos automáticos.
  • 06Devuelve un resultado JSON estructurado con métricas de duración, fuel y memoria.

Casos de uso

  • Ejecutar código generado por LLM en un intérprete de código sin exponer la máquina anfitriona.
  • Ejecutar llamadas a herramientas desde agentes de IA con límites estrictos para archivos, hosts de red y variables de entorno.
  • Empaquetar funciones pequeñas de estilo serverless que necesiten límites de recursos previsibles.
  • Llamar a código aislado de Python o TypeScript desde una aplicación anfitriona mediante run().

Inicio rápido

  1. 1

    Instala el paquete de Python

    pip install capsule-run
  2. 2

    Crea hello.py con una tarea main que devuelva un saludo

  3. 3

    Ejecuta el archivo con Capsule CLI

    capsule run hello.py

Antes de usarlo

  • El README solo incluye ejemplos de Python y TypeScript, por lo que no se cubren otros lenguajes.
  • Compilar los archivos fuente añade varios segundos de latencia en la primera ejecución, a menos que los precompiles con capsule build.

En colecciones

Temas

Preguntas frecuentes

¿Qué es runtime?
Runtime para ejecutar código no confiable de agentes de IA en sandboxes aislados de WebAssembly, con límites de CPU, memoria y tiempo por tarea. Capsule es un runtime para ejecutar código no confiable en entornos aislados. Cada tarea se ejecuta en su propio sandbox de WebAssembly, separado del sistema anfitrión. Los desarrolladores marcan funciones de Python o TypeScript/JavaScript con un wrapper de tarea, y el runtime compila el archivo a WebAssembly y lo ejecuta.
¿runtime es gratuito? ¿Qué licencia tiene?
runtime es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿runtime sigue mantenido?
Mantenimiento activo. El último commit de runtime fue el 12 oct 2026.
¿Para qué puedo usar runtime?
Ejecutar código generado por LLM en un intérprete de código sin exponer la máquina anfitriona. Ejecutar llamadas a herramientas desde agentes de IA con límites estrictos para archivos, hosts de red y variables de entorno. Empaquetar funciones pequeñas de estilo serverless que necesiten límites de recursos previsibles. Llamar a código aislado de Python o TypeScript desde una aplicación anfitriona mediante run().
¿Cómo se instala runtime?
Instala el paquete de Python: pip install capsule-run Crea hello.py con una tarea main que devuelva un saludo Ejecuta el archivo con Capsule CLI: capsule run hello.py
¿Dónde consigo runtime?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/capsulerun/runtime

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados