Go SDK
Install
go get github.com/isorun-dev/isorun-goAuthenticate
export ISORUN_API_KEY="isorun_live_<region>_<id>_<hmac>"export ISORUN_API_URL="https://api.isorun.ai" # optionalQuickstart
ctx := context.Background()sb, err := isorun.Create(ctx, "python")if err != nil { log.Fatal(err)}defer sb.Close(ctx)
result, err := sb.Exec(ctx, "python3 -c 'print(42)'")if err != nil { log.Fatal(err)}fmt.Println(result.Stdout)Streaming output
result, err := sb.ExecStream( ctx, "python3 train.py", func(chunk isorun.StreamChunk) { fmt.Printf("[%s] %s", chunk.Stream, chunk.Data) }, 600,)fmt.Println(result.ExitCode)Snapshot and restore
snapID, _ := sb.Checkpoint(ctx)
restored, _ := isorun.Restore(ctx, snapID)defer restored.Close(ctx)
out, _ := restored.Run(ctx, "cat /etc/os-release")fmt.Println(out)Production checklist
- Use
defer sb.Close(ctx)for guaranteed cleanup. - Pass contexts with deadlines.
- Set per-command timeouts.
- Log sandbox IDs for tracing.