홈
WebAssembly 컴포넌트 모델은 상호 운용 가능한 WebAssembly 라이브러리, 애플리케이션, 환경을 구축하기 위한 광범위한 아키텍처입니다.
이 문서는 컴포넌트 모델의 사용자, 즉 라이브러리와 애플리케이션 개발자를 대상으로 합니다.
Note
컴파일러 및 Wasm 런타임 개발자는 컴포넌트 모델 명세를 참고하여 자신의 프로젝트에 컴포넌트 모델 지원을 추가하는 방법을 확인할 수 있습니다.
목차
| 컴포넌트 이해하기 | 컴포넌트 빌드하기 | 컴포넌트 사용하기 |
|---|---|---|
| 왜 컴포넌트인가? | C/C++ | 합성하기 |
| 컴포넌트 | C# | 실행하기 |
| 인터페이스 | Go | 배포하기 |
| 월드 | JavaScript | |
| Python | ||
| Rust | ||
| MoonBit |
WebAssembly 컴포넌트
모든 프로그래밍과 마찬가지로, 컴포넌트를 작성하는 목표는 기존 기능을 바탕으로 새로운 기능을 구축하여 사용할 수 있게 하는 것입니다.
WebAssembly 컴포넌트는 플랫폼에서 실행되며, 이 플랫폼은 웹 브라우저, 독립 실행형 런타임, 또는 (WebAssembly를 실행 파일로 컴파일하는 경우) 운영 체제일 수도 있습니다. 플랫폼은 컴포넌트를 실행함으로써 해당 컴포넌트가 구현하는 기능을 얻게 됩니다. 마찬가지로, 플랫폼은 컴포넌트 내의 코드가 외부 세계와 상호작용하는 데 사용할 수 있는 기능을 제공합니다.
예를 들면 다음과 같습니다.
- 컴포넌트 모델 사용자는 시스템 시간을 다른 시간대로 변환하는 컴포넌트를 빌드할 수 있습니다.
- 컴포넌트가 의도한 대로 작동하려면, 기반 플랫폼이 현재 시스템 시간과 시스템 시간대에 접근할 수 있는 수단을 컴포넌트에 제공해야 합니다.
WebAssembly 컴포넌트 빌드를 위한 API
일반적으로 컴포넌트를 실행하는 플랫폼은 컴포넌트에 필요한 기능에 접근하기 위한 잘 정의된 API를 제공해야 합니다. 예를 들어 표준 입력에서 읽기, 환경 변수에 접근하기, 네트워크 소켓 조작하기 등이 있습니다.
WebAssembly 컴포넌트가 의존할 수 있는 표준화된 공용 API 집합이 있으면 유용합니다. WASI(WebAssembly 시스템 인터페이스)는 이러한 API를 정의하는 표준화 과정의 명세입니다. 시스템이나 플랫폼은 WASI API의 일부 또는 전부를 컴포넌트에 노출할 수 있습니다.
상태
WASI의 현재 안정 릴리스는 2024년 1월 25일에 릴리스된 WASI 0.2.0입니다. WASI 0.2.0은 컴포넌트가 대상으로 삼을 수 있는 안정적인 WIT 정의 집합입니다. WASI 제안은 계속 발전하고 새로운 제안도 도입될 것입니다. 그러나 이제 컴포넌트 모델 사용자는 >= v0.2.0인 모든 안정 릴리스에 고정할 수 있습니다. WASI.dev 로드맵에서 예정된 릴리스를 추적합니다.
기여하기
오류, 누락, 모호한 부분 또는 기타 문제를 발견하시면 GitHub 이슈를 통해 알려 주십시오.
이 가이드에 콘텐츠를 기여하고 싶으시다면 기여 방법에 관한 정보는 기여 가이드를 참고하십시오.