astrid-runtime/sdk-js
JavaScript and TypeScript SDK for building Astrid capsules.
해결하는 문제
Rust 대신 JavaScript와 TypeScript를 사용하여 "캡슐"(격리된 휴대 가능한 바이너리)을 구축하는 방법을 제공합니다. 이를 통해 개발자는 익숙한 Node.js 스타일의 API와 TypeScript 데코레이터를 사용하여 호스트 ABI를 변경할 필요 없이 Astrid 런타임 커널에서 실행할 수 있는 모듈형 컴포넌트를 만들 수 있습니다.
작동 방식
이 SDK는 TypeScript 코드를 WebAssembly (Wasm) 컴포넌트로 변환하는 빌드 파이프라인을 사용합니다. 프로세스는 다음과 같습니다:
- Typechecking:
tsc가 TypeScript를 JavaScript로 컴파일합니다. - Bundling:
esbuild가 코드와 SDK를 단일 ESM 모듈로 번들링합니다. - Componentization: ComponentizeJS가 StarlingMonkey를 사용하여 번들을
wasm32-wasip2컴포넌트로 변환합니다. - Packaging: Rust 기반 도구가 생성된 Wasm 파일과
Capsule.toml구성을.capsule아카이브로 패키징합니다.
대상 사용자
Astrid 캡슐 구축에 Rust보다 JavaScript 및 TypeScript의 사용 편의성을 선호하는 개발자, 그리고 JS 캡슐의 더 큰 바이너리 크기(Rust 대비)가 허용 가능한 트레이드오프인 데몬 모드 워크로드를 구축하는 개발자.
주요 특징
- 익숙한 API:
node:fs/promises,node:child_process및 WHATWG fetch를 사용합니다. - TypeScript 데코레이터:
@capsule,@tool,@install과 같은 데코레이터를 사용하여 캡슐 동작 및 라이프사이클 훅을 정의합니다. - 언어에 독립적: Rust SDK와 동일한
.capsule아카이브 형식 및 WIT 계약을 생성하므로 커널 관점에서 바이너리 교체가 가능합니다. - 통합 빌드 도구: 소스 코드부터 최종 아카이브까지 전체 파이프라인을 관리하는 빌드 오케스트레이터를 포함합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트