자세히 보기

Paul Krill
Editor at Large

“러스트-자바스크립트 호환성 강화”··· 모질라, 새 웹어셈블리 프로젝트 시작

모질라(Mozilla)가 자바스크립트와 러스트(Rust) 언어의 타입의 연결하는 이른바 'wasm-bindgen' 프로젝트를 진행중이다. 웹어셈블리(wasm) 포터블 코드 형식을 기반으로 한다.

이 프로젝트로 자바스크립트와 러스트 간의 호환성을 강화될 것으로 기대된다. 러스트는 웹어셈블리를 통해 자바스크립트와 같은 웹 언어 역할을 하게 된다. wasm-bindgen은 웹어셈블리 모듈과 자바스크립트 사이의 고수준 상호작용을 담당하며, 자바스크립트와 웹어셈블리는 스트링과 자바스크립트 오브젝트, 클래스 간에 통신할 수 있게 된다.

wasm-bindgen의 주요 기능은 다음과 같다.

– 웹어셈블리 호출로 자바 스크립트 구조, 함수, 오브젝트 내보내기. 개발자는 자바스크립트 메소드를 호출하고 속성에 접근할 수 있다. 러스트 코드에서 네이티브와 비슷한 환경을 제공한다.
– 러스트 구조와 함수를 자바스크립트로 내보내기. 자바스크립트 class로 변환되는 러스트 struct를 내보낼 수 있다. 이후에 구조는 삭제할 수 있다.

현재 웹어셈블리는 4가지 타입만 지원한다. 2개 정수 타입과 2개 부동소수점 타입이다. 그러나 자바스크립트와 러스트 개발자는 종종 더 다양한 타입을 사용한다. 예를 들어 러스트 개발자는 오류 처리에 Result를 사용한다. wasm-bindgen을 이용하면 자바스크립트가 기호열 하나나 러스트 함수로 러스트 API를 호출할 수 있다. 이를 통해 자바스크립트 예외를 잡아낼 수 있다. 웹어셈블리와 자바스크립트 간의 불일치를 제거함으로써, 자바스크립트는 웹어셈블리 함수를 활용할 수 있게 되고 마찬가지로 웹어셈블리는 자바스크립트 함수를 사용할 수 있다.

wasm-bindgen은 ECMA스크립트 모듈을 기반으로 러스트에 집중하고 있다. 그러나 장기적으로는 C와 C++ 같은 언어에도 사용할 수 있도록 지원할 계획이다. 단, 모질라에 따르면 이번 프로젝트는 아직 다른 언어까지 확장할 정도로 안정적인 단계는 아니다.

최종 목표는 러스트가 웹 언어가 되는 것이다. 웹어셈블리에 집중함으로써 러스트는 자바스크립트처럼 웹에서 실행할 수 있는 언어가 될 수 있다. 그러나 모질라는 자바스크립트를 러스트로 대체하는 것은 아니라고 설명했다. 러스트 어셈블리 앱은 완전히 러스트로 작성할 수 있는 것은 아니다. 상당한 양의 애플리케이션 코드는 여전히 자바스크립트가 차지한다. 러스트와 웹어셈블리는 애플리케이션의 특정 부분에 사용할 수 있는데, 소스 맵을 파싱하거나 DOM에서 변경된 부분을 찾는 작업이 대표적이다.

wasm-bindgen은 기트허브에서 다운로드할 수 있다. dl-ciokorea@foundryco.com

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

이 저자의 추가 콘텐츠