외부 환경과의 연결
WebAssembly 코드는 실행 환경이 제공하는 인터페이스를 통해 외부 기능을 사용한다. WASI는 이러한 기능에 공통으로 의존할 수 있는 API를 정의한다. 플랫폼은 필요한 API의 일부 또는 전체를 제공할 수 있다.
모듈성과 권한 기반 설계
특정 런타임에 묶이지 않는 모듈형 API를 목표로 한다. 권한에 기반한 API 설계로 WebAssembly의 격리된 실행 특성을 유지하는 것을 지향한다. 운영체제의 기능을 무조건 직접 노출하는 방식과는 다르다.
단계적인 인터페이스 발전
초기 인터페이스는 POSIX와 CloudABI의 영향을 받았고 이후 WIT를 사용하는 모듈형 API로 발전했다. 컴포넌트 모델과 결합한 비동기 기능도 도입된다. 각 실행 환경이 지원하는 API와 인터페이스 세대는 구분해 확인할 필요가 있다.
관련 문서
WebAssembly 컴포넌트 모델 / Wasmtime / WAMR / Wasm Tools / 웹어셈블리 / API