brief.ing.gg

BRIEFING

Rust-script는 실용적인가

Rust-script는 실용적인가

Scope

핵심 질문

rust-script를 이용해 Rust를 scripting 언어처럼 사용할 때 실제 장점과 한계는 무엇인가?

Research

핵심 근거

  • rust-script는 단일 Rust 파일 안에 dependency metadata를 포함하고 setup 없이 실행하는 경험을 제공한다.
  • 내부적으로는 Rust compilation이 필요하므로 Python이나 shell처럼 즉시 시작되는 interpreter와는 성격이 다르다.
  • compile cache가 재사용되면 반복실행 비용은 줄지만 첫 실행과 dependency 변화에는 compile 비용이 있다.

참고 자료

  • https://github.com/fornwall/rust-script

Draft

rust-script는 작은 Rust 프로그램을 별도 Cargo project 없이 script처럼 실행할 수 있게 해주는 도구다.

장점

파일 하나에 dependency를 선언할 수 있고 shebang으로 직접 실행할 수 있다. 이미 Rust ecosystem과 type system을 사용하고 싶다면 작은 운영도구를 별도 repository 없이 작성하기 편하다.

컴파일된 뒤에는 native binary 성능과 Rust의 강한 타입·오류처리를 그대로 활용할 수 있다.

한계

Rust 자체가 컴파일 언어라는 사실은 바뀌지 않는다. 첫 실행과 dependency 변경 시 compile 시간이 필요하다. 간단한 파일 조작이나 HTTP 한 번 호출하는 script에서는 Python이나 shell보다 피드백이 느릴 수 있다.

파일 크기와 배포

실행 과정에서 cache된 build artifact가 생길 수 있고, 별도 binary로 배포하면 일반 Rust 프로그램과 마찬가지로 파일 크기가 작지 않을 수 있다.

언제 유용한가

Rust library를 사용해야 하거나 script가 점차 커져 type safety와 성능이 중요해질 때 유용하다.

결론

rust-script는 Rust를 interpreter 언어로 바꾸는 도구가 아니라 Cargo project 생성 마찰을 줄이는 도구다. 짧은 일회성 script보다 반복해서 쓰는 작은 시스템 도구에 더 잘 맞는다.