Rust wasm으로 웹에서 실행해보기

정명진·2023년 3월 16일
0

Rust wasm 컴파일해서 웹에서 실행하기

우선 Rust가 기본적으로 설치되어 있어야 한다.

cargo install wasm-pack

우선 wasm-pack을 설치해주자.

그리고 프로젝트를 생성해주자.

cargo new --lib ${project명}
     Created library `${project명}` project

기존에 프로젝트가 있다면 해당 명령어를 건너 뛰어도 됩니다.

그러면 lib.rs 라는 파일이 생성되는데, 해당 부분에 function을 정의하면 됩니다.

#[wasm_bindgen]

function을 생성할때 위 어노테이션을 써야 하는데 해당 어노테이션은 Rust와 JS간 소통할 수 있게 도와주는 기능이라고 생각하시면 됩니다. 즉 JS가 해당 기능을 사용하게 만들고 싶을 때 사용하면 됩니다.

그러면 빌드 커맨드를 알아 보겠습니다.

wasm-pack build --target web

해당 커맨드를 실행하면 rust를 wasm에서 실행 가능한 파일로 컴파일 해줍니다. 여기서 주의할 점은 "--target web"을 꼭 지정해야 합니다. 해당 옵션을 지정하지 않을 경우 웹에서 사용이 불가능합니다!
정상적으로 실행이 되면 pkg 폴더가 생성되고 그 안에 ${project명}.js 파일이 생성이 됩니다. 이제 해당 파일을 html에서 script 사용하듯이 사용하면 됩니다.

제 경우

<!DOCTYPE html>
<html lang="en-US">
<head>
    <meta charset="utf-8" />
    <title>hello-wasm example</title>
</head>
<body>
<script type="module">
      import init, { test1 } from "./pkg/${project명}.js";
      init().then(() => {
        test1();
      });
    </script>
</body>
</html>

이런식으로 작성했는데, 웹 페이지를 열면 test1 function이 실행됩니다.

profile
개발자로 입사했지만 정체성을 잃어가는중... 다시 준비 시작이다..

0개의 댓글