GN⁺: RustPython - Rust로 작성된 파이썬 인터프리터
(rustpython.github.io)- Rust로 작성된 오픈소스 파이썬 3(CPython >= 3.11.0) 인터프리터
- Rust 프로그램에 내장하여 사용하거나, 웹 브라우저에서 파이썬을 실행하기 위해 WebAssembly로 컴파일 가능함
- MIT 라이선스
목표
- Rust만을 사용하여 완전한 파이썬 3 환경을 구현함 (CPython 바인딩 없음).
- Rust에서 사용하거나 WebAssembly로 컴파일할 수 있는 빠르고, 신뢰성 있으며, 안전한 파이썬 구현을 목표로 함
RustPython의 장점
- 다양한 파이썬 구현체가 존재하지만, RustPython은 Rust 프로그래밍 언어를 위한 것임
- Jython과 IronPython이 각각 Java와 .NET과의 통합을 가능하게 한 것처럼, RustPython은 Rust와의 통합을 목표로 함
- Rust의 최소 런타임 덕분에 WebAssembly로 컴파일하여 브라우저에서 파이썬 코드를 쉽게 실행할 수 있음
설치 방법
-
cargo install --git https://github.com/RustPython/RustPython
-
wapm install rustpython
-
conda install rustpython -c conda-forge
- 또는 소스에서 직접 빌드 가능함.
GN⁺의 의견
- RustPython은 Rust의 안전성과 성능을 활용하여 파이썬 인터프리터를 새롭게 구현한 프로젝트임.
- 기존 파이썬 구현체들과 달리 Rust 기반으로 작성되어, Rust와 파이썬의 통합을 강화하고 WebAssembly를 통한 웹상에서의 파이썬 실행을 가능하게 함.
- 현재 개발 중인 프로젝트로, 파이썬 생태계에 새로운 가능성을 제시하며, Rust와 파이썬을 함께 사용하고자 하는 개발자들에게 흥미로운 대안이 될 수 있음.
Hacker News 의견
-
"it can be compiled to WebAssembly in order to run Python in the browser."
- 한 사용자는 CPython과 NodeJS를 이용한 유사한 접근법을 보았으며, 이 방식이 실용적이지 않다고 생각함.
- 웹어셈블리(Wasm)로 컴파일된 런타임 위에서 파이썬 코드를 실행하는 것은 성능 저하를 두 번 겪게 됨.
- 동적 타입 언어를 Wasm 런타임에서 실행하려면 언어가 직접 Wasm으로 컴파일되어야 함.
- 프로젝트는 여전히 멋지고 유용하며, 브라우저에서 사용할 수 있는 파이썬 코드가 많음에도 불구하고 웹 프레임워크를 이런 방식으로 구축하려고 시도해서는 안 됨.
- RustPython에 대한 성능 벤치마크를 진행하지 않았으며, RustPython이 알려지지 않은 몇 가지 트릭을 사용할 수도 있음을 인정함.
-
관련 링크들:
- RustPython은 Rust로 작성된 Python 3 인터프리터로, 여러 시점에서 해커뉴스에 게시되어 다양한 댓글을 받음.
-
MicroPython에 대한 긍정적인 의견:
- 한 사용자는 MicroPython이 멋지다고 언급하며, RP2040에서 실행됨을 밝힘.
-
RustPython에 대한 다양한 의견:
- RustPython이 IronPython의 후속작이라고 생각하는 사용자가 있음.
- 파이썬에 건강한 서드파티 인터프리터 커뮤니티가 있다는 것이 멋지다고 생각하는 사용자가 있음.
- CPython과의 차이점을 드러내는 문제들에 대해 궁금해하는 사용자가 있음.
- RustPython의 진전에 기쁨을 표하는 사용자가 있으며, Wasmer를 이용해 RustPython을 실행하는 방법을 공유함.
-
RustPython의 한계에 대한 의견:
- RustPython과 같은 프로젝트가 널리 적용될 수 있을지 확신하지 못하는 사용자가 있음.
- Python의 가치는 네이티브 라이브러리와의 인터페이스에 있으며, PyPy와 같은 것을 사용하면 그 모든 접근성을 잃게 됨을 지적함.
-
Jython과 IronPython에 대한 비판적인 의견:
- Python 2가 사라진 지금, Python 3으로의 전환에 실패한 Jython과 IronPython은 언급할 가치가 없다고 주장하는 사용자가 있음.
-
RustPython을 사용한 프로젝트 경험 공유:
- 한 사용자는 RustPython을 인터넷 컴퓨터 프로토콜을 위한 파이썬 환경인 Kybra 프로젝트의 인터프리터로 사용하고 있으며, Wasm이 ICP의 런타임 환경임을 밝힘.
- C 확장의 부재가 문제이지만, wasi와 C 확장 지원이 준비되면 CPython으로 이동할 계획임을 언급함.
-
RustPython의 성능에 대한 비교:
- 한 사용자는 RustPython이 CPython보다 약 11배 느리다는 것을 피보나치 수열 계산을 통해 확인하고 결과를 공유함.