Wasmtime
이 페이지에는 WASI 0.2와 WASI 0.3에 대한 내용이 모두 포함되어 있습니다. 버전별로 내용이 다른 부분에서는 아래 탭을 사용하여 버전을 전환하십시오.
Wasmtime은 컴포넌트 모델의 참조 구현입니다. Wasmtime은 wasi:cli/command 월드를 구현하는 컴포넌트의 실행과 wasi:http/proxy 월드를 구현하는 컴포넌트의 서빙을 지원합니다. Wasmtime은 컴포넌트에서 내보낸 함수를 호출할 수도 있습니다.
Wasmtime으로 command 컴포넌트 실행하기
Wasmtime으로 command 컴포넌트를 실행하려면 다음을 실행하십시오:
wasmtime run <path-to-wasm-file>
이전 버전의
wasmtime을 사용하는 경우, 코어 모듈이 아닌 컴포넌트를 실행한다는 것을 지정하기 위해--wasm component-model플래그를 추가해야 할 수 있습니다.
기본적으로 Wasmtime은 컴포넌트가 모든 시스템 리소스에 접근하는 것을 거부합니다. 예를 들어, 컴포넌트는 파일 시스템이나 환경 변수에 접근할 수 없습니다. 접근 권한 부여 방법과 기타 Wasmtime 기능에 대한 정보는 Wasmtime 가이드를 참조하십시오.
Wasmtime으로 HTTP 컴포넌트 실행하기
wasmtime serve 하위 명령을 사용하여 HTTP 프록시 월드를 구현하는 컴포넌트를 실행할 수 있습니다. Wasmtime CLI는 v18.0.0부터 이러한 컴포넌트의 서빙을 지원합니다.
Wasmtime으로 HTTP 컴포넌트를 실행하려면 다음을 실행하십시오:
wasmtime serve <path-to-wasm-file>
다음 튜토리얼 중 하나를 통해 HTTP 컴포넌트를 빌드하고 실행해 보십시오
-
Hello WASI HTTP 튜토리얼 - 간단한 Rust 기반 HTTP 컴포넌트를 빌드하고 서빙합니다
-
HTTP 인증 미들웨어 튜토리얼 - HTTP 인증 미들웨어 컴포넌트를 비즈니스 로직 컴포넌트와 합성합니다
사용자 정의 익스포트가 있는 컴포넌트 실행하기
Wasmtime 버전 33.0.0부터 사용자 정의 익스포트가 있는 컴포넌트 호출을 지원합니다.
예를 들어, 컴포넌트가 두 개의 숫자 인수를 받는 함수 add를 익스포트하는 경우, 다음 명령으로 이 기능을 사용할 수 있습니다.
wasmtime run --invoke 'add(1, 2)' <path-to-wasm-file>
함수가 인수를 받지 않더라도 호출을 작은따옴표로 감싸고 괄호를 반드시 포함하십시오. 내보낸 함수에 인수를 전달할 때 다양한 WIT 타입을 표현하는 방법의 전체 목록은 WAVE 저장소를 방문하여 확인하십시오.