You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.7.0: Prebuilt Sandbox Adapters & Network Support
Status: β Done
Goal: Allow to easily use prebuilt sandboxed environments with readyβtoβuse adapters.
Python Adapter: Prebuilt sandbox template for Python frameworks.
TypeScript Adapter: Prebuilt sandbox template for TypeScript/JavaScript frameworks.
Socket shim for Python: Transparent support for standard network libraries (urllib) via a custom socket implementation (bypasses componentize-py limitation)
Enable filesystem mode: read-only and read-write to extend possibilities
v0.8.0: Richer execution metrics
Status: β Done
Goal: Provide more visibility into each task's behavior for better auditing and monitoring.
Network : Return which domains/IPs were called and what data was sent
RAM: Return the exact amount of memory consumed by the task
Node.js: Improve polyfills and extended compatibility
π Roadmap
This tracks the development status of Capsule.
Note
This roadmap reflects current priorities. Feature requests and ideas are welcome.
v0.1.0: The Python Runner
Status: β Done
Goal: Validating the core Host/Guest technology and Python interoperability.
@taskdecorator with JSON serialization.capsule run main.pywith JIT compilation.v0.2.0: Production & Polyglot
Status: β Done
Goal: Stability, security, and expanding the ecosystem.
const t = task(...)).v0.3.0: Data Access (Filesystem)
Status: β Done
Goal: Enable agents to work with local files and datasets.
fs_access) for reading images, CSVs, and datasets.v0.4.0: Configuration & Observability
Status: β Done
Goal: Improve developer workflow with project configuration and richer task feedback.
capsule.tomlfor default task options.{ "success": true, "result": "<task return value>", "error": null, "execution": { "task_name": "analyze_data", "duration_ms": 1523, "retries": 0, "fuel_consumed": 45000 } }On failure:
{ "success": false, "result": null, "error": { "type": "timeout", "message": "Task exceeded 30s timeout limit" }, "execution": { "task_name": "analyze_data", "duration_ms": 30000, "retries": 1, "fuel_consumed": null } }v0.5.0: Node.js Ecosystem Compatibility Extended
Status: β Done
Goal: Enable natural Node.js development patterns and improve npm package compatibility in WASM.
Polyfills needed:
path-browserifyand aliasimport path from 'path'.import os from 'os'.processpolyfill (env, argv, cwd, exit, nextTick) injected as a global via esbuild.import { URL } from 'url'to native WebURLclass.bufferpackage to polyfill Node.jsBufferclass βUint8Array.eventspackage to polyfillEventEmitter.readable-streamfor Node.js stream compatibility.stream-webfor Node.js stream/web compatibility.import fs from 'fs'to WASI file operations:fs.readFile()β Capsule'sreadText()/readBytes()fs.writeFile()β Capsule'swriteText()/writeBytes()fs.readdir()β Capsule'slist()v0.6.0: SDK Runner & Network Controls
Status: β Done
Goal: Enable seamless third-party integration and basic network security.
run()function to both SDKs for async subprocess execution.v0.7.0: Prebuilt Sandbox Adapters & Network Support
Status: β Done
Goal: Allow to easily use prebuilt sandboxed environments with readyβtoβuse adapters.
urllib) via a custom socket implementation (bypassescomponentize-pylimitation)read-onlyandread-writeto extend possibilitiesv0.8.0: Richer execution metrics
Status: β Done
Goal: Provide more visibility into each task's behavior for better auditing and monitoring.