새로운 실험적 백엔드
- V8, Wasmi, WAMR 지원이 추가됨
- 이제 Wasm-C-API 사양을 지원하는 모든 인터프리터 또는 런타임을 Wasmer에 쉽게 통합할 수 있음
- V8 통합을 통해 V8 디버거 및 Chrome Devtools를 통한 훌륭한 디버깅 경험을 제공
- V8을 백엔드로 사용한다는 것은 WebAssembly 예외 및 가비지 컬렉션을 기본적으로 지원한다는 의미이기도 함
iOS 지원 (WAMR, Wasmi, V8 바인딩 통해 제공)
- Wasmer는 새로운 인터프리터 모드를 통해 iOS 장치에 WebAssembly를 제공함
- V8, Wasmi, WebAssembly Micro Runtime(WAMR)의 기능을 활용하여 개발자는 이제 iOS에서 WebAssembly 모듈을 원활하게 실행할 수 있음
- 코드베이스에 변경 사항이 필요하지 않으며, Apple 생태계에서 고성능 애플리케이션 작성이 가능해짐
코드베이스 슬림화
- Wasmer 5.0 출시를 위해 Wasmer 코드베이스를 가능한 한 슬림하게 만드는 데 중점을 둠
- Wasmer에서 사용하는 일부 종속성은 오랫동안 유지 관리되지 않았거나 더 새롭고 안전한 크레이트에 의해 중복됨
- 지난 2년 동안 Emscripten 바인딩이 대부분 사용되지 않았으므로 지원을 중단하고 종속성을 정리한 결과 Wasmer 코드베이스에서 순수하게 2만 줄의 코드가 삭제됨
성능 향상
- 모듈 역직렬화는 이제 최대 50% 더 빨라짐 (즉,
Module::deserialize
를 호출하거나 wasmer run
을 통해 모듈을 실행할 때)
- 이러한 개선 사항은 모듈을 역직렬화하는 데 사용하는 제로 복사 역직렬화 라이브러리인 rkyv의 중요한 업데이트를 활용하고 있음
업그레이드된 컴파일러: Cranelift 및 LLVM 18
- 최신 Cranelift 통합으로 인해 런타임 속도가 크게 향상되어 WebAssembly 모듈이 그 어느 때보다 빠르게 실행됨
- Wasmer 5.0에는 이제 LLVM의 최신 버전(18)이 포함되어 있어 개발자가 도구 체인의 최신 최적화에 액세스할 수 있음
- LLVM 업그레이드는 호환성과 성능을 향상시켜 복잡한 WebAssembly 모듈을 컴파일하고 실행하기 위한 강력한 기반을 제공함
- Wasmer 5.0은 또한 실험적인 LoongAarch64 지원과 함께 제공됨
- 컴파일러의 최신 버전으로
coremark
를 벤치마킹한 결과, LLVM과 Cranelift는 Wasmer v4.4.0에 비해 v5.0에서 약 8% 더 빠름
GN⁺의 의견
- Wasmer 5.0의 출시는 WebAssembly 생태계에 큰 이정표가 될 것으로 보임. 특히 iOS 지원과 다양한 백엔드 옵션 제공은 WebAssembly의 적용 범위를 모바일 애플리케이션까지 크게 확장시킬 수 있을 것으로 기대됨
- V8, Wasmi, WAMR 등 다양한 런타임을 백엔드로 지원함으로써 개발자들은 자신의 요구사항에 가장 적합한 런타임을 선택할 수 있게 되었음. 이는 WebAssembly의 유연성과 호환성을 높이는 데 크게 기여할 것으로 보임
- 코드 베이스 슬림화와 최신 컴파일러 도입을 통한 성능 최적화 노력도 주목할 만한 부분임. 이는 Wasmer가 단순히 기능 추가에 그치지 않고 지속적인 품질 개선에도 노력을 기울이고 있음을 보여줌
- 한편 Emscripten 바인딩 지원 중단은 아쉬운 부분이나, WASI와 WASIX 등 새로운 표준의 등장으로 인해 그 필요성이 줄어들었다는 점에서 합리적인 선택으로 보임
- 종합하면 Wasmer 5.0은 WebAssembly의 발전상을 잘 보여주는 릴리스로, 앞으로도 Wasmer가 WebAssembly 생태계를 선도하는 주요 프로젝트 중 하나가 될 것으로 전망됨. 다만 아직 실험 단계인 기능들의 안정성과 성숙도를 높이기 위한 지속적인 노력이 필요해 보임