Kyushu: JavaScript Workers를 위한 셀프 호스팅 가능한 WASM 샌드박스

Kyushu는 개발자가 JavaScript 또는 TypeScript 핸들러를 작성하고 이를 독립적인 WebAssembly (Wasm) 바이너리로 컴파일할 수 있도록 설계된 오픈 소스 CLI 도구입니다. 이 접근 방식은 Node.js, Bun 또는 Docker를 통한 컨테이너화와 같은 런타임 없이도 VPS 또는 모든 환경에서 서버리스 스타일의 함수를 실행할 수 있게 해줍니다.

WebAssembly를 통한 고성능 격리

Kyushu는 WebAssembly 샌드박스를 활용하여 워커를 호스트 시스템으로부터 격리합니다. 핸들러를 단일 바이너리로 컴파일함으로써, 이 도구는 JavaScript 실행과 일반적으로 관련된 시스템 의존성을 제거하여 전통적인 가상화 또는 컨테이너화에 대한 가벼운 대안을 제공합니다.

주요 기술적 특징은 다음과 같습니다:

  • Runtime Independence: Node.js, Bun 또는 Docker 없이 작동합니다.
  • API Familiarity: Cloudflare Workers 스타일의 fetch 핸들러를 구현하여, 코드를 이식 가능하게 만들고 에지 컴퓨팅 플랫폼에 익숙한 개발자들에게 친숙하게 만듭니다.
  • kinematics Self-Hostable: 생성된 바이너리는 kyu 명령어를 사용하여 VPS 또는 모든 호환 가능한 호스트에서 배포 및 실행할 수 있습니다.

전통적인 런타임 및 컨테이너와의 비교

전통적인 JavaScript 환경이 무거운 런타임이나 컨테이너 이미지를 사용하는 반면, Kyushu는 로직의 바이너리 배포에 집중합니다. 이는 애플리케이션 로직을 실행 가능한 바이너리로 직접 컴파일하여 오버헤드를 줄이고 로컬 테스트를 단순화합니다.

커뮤니티 논의에서는 Wasm 기반 격리가 컨테이너 및 microVMs에 대한 뚜렷한 차별화된 대안으로 작용한다고 강조합니다. 6년 동안 Wasm을 다뤄온 사용자 @cohix가 언급한 바와 같이:

그들은 각각 유용하며 서로 다른 용도에 적합합니다. [Wasm은] 격리/가상화(컨테이너, microVMs, Wasm) 측면에서 사람들에게 선택권을 제공합니다.

사용 사례 및 배포

Kyushu는 Cloudflare Workers와 같은 관리형 에지 플랫폼의 셀프 호스팅 가능한 대안으로 자리매김하고 있습니다. 이를 통해 개발자는 서버리스 핸들러의 개발자 경험(DX)을 활용하면서 인프라에 대한 완전한 제어권을 유지할 수 있습니다.

설치는 간단한 쉘 스크립트를 통해 이루어집니다: curl -fsSL https://kyushu.dev/install | bash

Sources