러스트(Rust) 언어의 공식 컴파일러인 'rustc' 전체가 C 코드로 변환된 'crustc' 프로젝트가 최근 공개되어 개발자 커뮤니티의 주목을 받고 있습니다. 이 프로젝트는 4,600만 줄에 달하는 방대한 C 코드로 이루어져 있으며, GCC와 Make를 이용해 컴파일하여 실제로 동작하는 러스트 컴파일러를 만들 수 있습니다. 이는 러스트 생태계에 새로운 가능성을 제시하는 중요한 이정표로 평가됩니다.
'crustc'는 FractalFir가 3년간 개발한 'cilly'라는 러스트-C 컴파일러 도구체인의 시연 사례입니다. 'cilly'의 핵심 혁신은 C 컴파일러에 적응하는 능력에 있습니다. 특정 C 컴파일러와 플랫폼이 지원하는 기능을 'witness' 프로그램을 통해 확인하고, 이에 맞춰 C 코드를 생성합니다. 덕분에 'cilly'는 ANSI C 표준 외의 어떠한 가정도 하지 않으며, 심지어 현대 C 표준의 엄격한 별칭(strict aliasing) 같은 요소에 대한 해결책까지 제공합니다. 이처럼 유연한 접근 방식 덕분에, LLVM이나 GCC 지원이 없는 구형 또는 특수 하드웨어에서도 러스트 코드를 컴파일하고 실행할 수 있게 됩니다.
이 프로젝트의 가장 큰 의미는 러스트의 적용 범위를 획기적으로 확장한다는 점입니다. 기존에는 러스트를 지원하지 않던 임베디드 시스템이나 구형 장비에서도 러스트를 사용할 수 있게 되어, 러스트의 채택률을 높이고 개발자들이 더 다양한 환경에서 러스트의 안전성과 성능 이점을 활용할 수 있게 될 것입니다. 또한, 'cilly'는 네트워크 투명성(network transparency)을 지원하여 원격 C 컴파일러와 통신할 수 있어, 부트스트랩 문제나 크로스 컴파일러가 없는 플랫폼에서도 러스트 개발을 가능하게 합니다. 이는 러스트 생태계의 접근성을 크게 향상시키고, 더 많은 개발자들이 러스트의 잠재력을 탐색할 수 있는 기회를 제공할 것으로 기대됩니다.