Last updated
Last updated
❗️ 번역 날짜: 2024년 12월 09일 공식 문서 원문은 아래를 참고하세요. >
****는 C/C++, Rust, AssemblyScript를 포함한 다양한 언어로부터 컴파일 가능한 고성능 어셈블리와 유사한 언어입니다. 현재 Chrome, Firefox, Safari, Edge, Node.js에서 지원됩니다!
WebAssembly 명세는 두 가지 파일 형식을 정의합니다. .wasm
확장자를 가진 바이너리 형식인 WebAssembly 모듈과 .wat
확장자를 가진 텍스트 표현 형식인 WebAssembly 텍스트 형식입니다.
Module - 컴파일된 WebAssembly 바이너리, 즉 .wasm
파일입니다.
Memory - 크기를 조정할 수 있는 ArrayBuffer입니다.
Table - 메모리에 저장되지 않은 참조의 크기 조정 가능한 형식화 배열입니다.
Instance - 메모리, 테이블 및 변수를 포함한 모듈의 인스턴스화입니다.
WebAssembly를 사용하려면 .wasm
바이너리 파일과 WebAssembly와 통신하기 위한 API 세트가 필요합니다. Node.js는 전역 WebAssembly
객체를 통해 필요한 API를 제공합니다.
WebAssembly 바이너리 파일을 생성하는 방법에는 여러 가지가 있습니다:
이 도구들 중 일부는 바이너리 파일뿐만 아니라 JavaScript "글루" 코드 및 브라우저에서 실행하기 위한 HTML 파일도 생성합니다.
WebAssembly 모듈이 준비되면 Node.js의 WebAssembly
객체를 사용하여 이를 인스턴스화할 수 있습니다.
WebAssembly (.wat
)를 직접 작성하고 와 같은 도구를 사용하여 바이너리 형식으로 변환
을 사용하여 C/C++ 애플리케이션으로부터 생성
을 사용하여 Rust 애플리케이션으로부터 생성
TypeScript와 유사한 경험을 원한다면 사용
WebAssembly 모듈은 자체적으로 운영 체제 기능에 직접 접근할 수 없습니다. 운영 체제 기능에 접근하려면 과 같은 서드파티 도구를 사용할 수 있습니다. Wasmtime
은 API를 활용하여 운영 체제 기능에 접근합니다.