피드로 돌아가기
Hacker NewsHacker News
Infrastructure

Pure Go 기반의 Zero-dependency WASM 툴킷 watgo 공개

Watgo – A WebAssembly Toolkit for Go

2026년 4월 10일4intermediate

Context

기존 WASM 툴킷인 wabt나 wasm-tools는 C++ 및 Rust 의존성을 가진 구조로 설계됨. Go 생태계 내에서 외부 의존성 없이 WAT 파싱 및 WASM 바이너리 변환을 수행하는 순수 Go 구현체의 필요성 증대.

Technical Solution

  • 내부 Semantic Representation인 wasmir 모델 도입을 통한 모듈 분석 및 조작 구조 설계
  • WAT에서 wasmir를 거쳐 WASM binary로 변환하는 다단계 파이프라인 구축
  • textformat 패키지를 통한 AST 생성 후 canonicalization 과정을 거쳐 wasmir로 로워링하는 구조 채택
  • 함수 및 타입 이름을 숫자 인덱스로 변환하여 WASM 실행 시맨틱과 일치시킨 설계
  • .wast 공식 테스트 스위트를 활용해 Node.js 런타임에서 검증하는 하이브리드 테스트 하네스 구현
  • wasmir 기반 API를 제공하여 모듈 내 Instruction 및 Parameter에 대한 정밀 분석 가능 구조 지원

1. 도메인 특화 언어(DSL) 처리 시 AST에서 Semantic Model로의 로워링 단계 검토

2. 외부 의존성을 제거한 Pure Language 구현을 통해 배포 복잡도 감소 전략 수립

3. 공식 테스트 스위트를 활용한 End-to-End 테스트 하네스 구축으로 구현체 신뢰성 확보

원문 읽기