skill-compile-to-wasm은(는) 무엇을 하나요?
Claude Code 스킬로, C 및 Rust 코드를 최적화된 WebAssembly 모듈로 컴파일합니다. 라이브러리 래핑(리액터 모드), CLI 도구(커맨드 모드), Wasmtime 및 Chicory를 통한 호스트 소비를 다룹니다.
개요
이 스킬은 Claude Code가 C와 Rust 코드를 WebAssembly 모듈로 변환할 수 있도록 지시합니다. 다음을 포함합니다:
- 리액터 모드: 기존 라이브러리를 Wasm 모듈로 래핑하여 다른 언어에서 호출 가능하게 함
- 커맨드 모드: CLI 도구를 Wasm으로 컴파일하여 브라우저나 서버에서 실행 가능하게 함
- 호스트 소비: Wasmtime(Rust) 및 Chicory(Java)를 사용하여 Wasm 모듈을 통합하는 방법
필수 조건
- Claude Code가 설치 및 구성되어 있어야 함
- 컴파일할 언어에 따라 Rust (
rustc,wasm-pack) 또는 C/C++ (emscripten,wasi-sdk) 도구 체인 - 선택 사항: Wasmtime(
wasmtime-cli) 또는 Chicory(Java 프로젝트용)
사용법
라이브러리를 Wasm으로 컴파일(리액터 모드)
# Rust 라이브러리
cd my-rust-lib
wasm-pack build --target web
# C 라이브러리
cd my-c-lib
emcc mylib.c -o mylib.wasm -s WASM=1 -s EXPORTED_FUNCTIONS="['_my_func']"
CLI 도구를 Wasm으로 컴파일(커맨드 모드)
# Rust CLI
cd my-cli-tool
cargo build --target wasm32-wasi --release
# C CLI
cd my-c-cli
clang mycli.c -o mycli.wasm -O3 --target=wasm32-wasi
Wasmtime으로 호스팅
wasmtime run my-module.wasm -- --help
Chicory(Java)로 호스팅
import com.dylibso.chicory.wasm.Parser;
import com.dylibso.chicory.runtime.Module;
Module module = Module.build(Parser.parse(new File("my-module.wasm")));
리소스
참고 사항
- 최적화된 Wasm 모듈을 위해 항상
-O3또는 동등한 최적화 플래그를 사용하세요. - 리액터 모드와 커맨드 모드는 서로 다른 진입점을 가지므로 필요에 따라 적절한 패턴을 선택하세요.
- 호스트 환경에 따라 적절한 Wasm 런타임을 선택하세요(Wasmtime은 Rust/범용, Chicory는 Java).