rivet-dev/secure-exec

Secure Node.js Execution Without a Sandbox A lightweight library for secure Node.js execution. No containers, no VMs — just npm-compatible sandboxing out of the box.

What it solves

Secure Exec는 컨테이너, 가상 머신 또는 외부 샌드박스 제공자를 사용하지 않고도 신뢰할 수 없는 Node.js 및 TypeScript 코드를 안전하게 실행할 수 있는 방법을 제공합니다. 리소스 사용이 제한되고 호스트 접근이 엄격히 제어되는 환경에서 코드를 작성·실행해야 하는 AI 에이전트의 요구에 특화되었습니다.

How it works

이 라이브러리는 V8 isolates(Chrome 브라우저 탭 및 Cloudflare Workers에서 사용하는 동일한 격리 기술)를 사용해 가벼운 실행 경계를 만듭니다. 전체 OS를 부팅하는 대신, 가상 커널과 시스템 브리지를 통해 호스트 프로세스 내에서 코드를 실행합니다. 이를 통해 JIT 컴파일을 포함한 네이티브 V8 성능을 유지하면서 네트워크, 파일 시스템, 자식 프로세스에 대한 "기본 거부" 권한 모델을 유지할 수 있습니다.

Who it’s for

  • 생성된 코드를 실행해야 하는 AI 에이전트를 구축하는 개발자(Vercel AI SDK, LangChain 등과 호환).
  • 인터랙티브 코딩 플레이그라운드 또는 플러그인 시스템을 만드는 개발자.
  • Docker와 같은 복잡한 인프라를 관리하지 않고 사용자 제출 스크립트나 개발 서버(Express, Hono 등)를 실행하고자 하는 사용자.

Highlights

  • Zero Infrastructure: Docker 데몬, 하이퍼바이저, 벤더 계정이 필요 없으며 npm으로 설치 가능.
  • Granular Permissions: 파일 시스템, 네트워크, 환경 변수에 대한 접근을 기본적으로 거부.
  • Resource Limits: CPU 시간 예산과 메모리 상한을 통해 runaway 코드를 결정적으로 종료.
  • Node.js Compatibility: fs, http, child_process 등 핵심 모듈을 지원하고 동적 npm 모듈 설치를 허용.
  • High Efficiency: 기존 컨테이너 기반 샌드박스에 비해 콜드 스타트 시간과 메모리 사용량이 크게 감소.