핵심 요약
- Rust 코드를 WGSL(WebGPU 셰이더 언어)로 변환해 주는 오픈소스 트랜스파일러 'wgsl-rs'가 0.1.0-beta 버전을 출시했습니다.
- 1인 개발자가 직장을 잃은 뒤 생긴 여유 시간으로 연산자 우선순위 차이, 벡터 비교 등 Rust와 WGSL 간의 수많은 기술적 간극을 메우며 완성했습니다.
- 벌써 인디 게임 개발자 및 Zed 에디터 포크 프로젝트(gpui-ce) 등 실제 프로젝트에 도입되어 검증받고 있습니다.
요약 Rust 코드를 WebGPU 셰이더 언어(WGSL)로 변환해 주는 트랜스파일러 프로젝트 'wgsl-rs'의 0.1.0-beta 버전이 crates.io에 정식 릴리스되었습니다.
개발자는 파트타임 1인 개발자로 감당하기 벅찬 프로젝트였으나, 9월 초 본업을 잃으면서 생긴 여유 시간을 쏟아부어 이번 베타를 완성할 수 있었다는 유쾌하면서도 웃픈 비하인드를 전했습니다.
이번 베타 개발 과정에서 Rust와 WGSL 간의 미묘한 문법·동작 차이를 해결하기 위한 흥미로운 기술적 난제들이 공유되었습니다. 대표적으로 Rust와 WGSL의 연산자 우선순위가 정반대라 논리식 파싱 오류가 발생하는 문제를 모든 이항식에 괄호를 강제 추가하는 방식으로 해결했으며, 벡터 동등 비교(`==`) 시 WGSL은 불리언이 아닌 마스크 벡터를 반환하는 문제를 AST 패스로 변환 처리했습니다. 또한 Rust와 WGSL의 정수 리터럴 기본 추론 타입 차이(i32 vs u32)를 잡기 위해 Copilot, Kimi 등 AI 도구와 협업해 스코프 추적 패스를 구축하기도 했습니다.
아직 초기 베타임에도 불구하고 실제 게임 개발자가 셰이더 포팅에 도입해 버그 리포트를 제공하고 있으며, Zed 에디터의 GUI 프레임워크 포크 프로젝트인 'gpui-ce'에서도 셰이더 레이어에 wgsl-rs를 도입하는 등 실사용자들의 호응을 얻고 있습니다. 개발자는 향후 GPU 기반 ECS 개발 및 렌더링 엔진 재작성을 이어갈 계획이라고 밝혔습니다.
Sponsored · 광고