9P by neo 9달전 | favorite | 댓글 2개
  • 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로 컴파일하여 브라우저에서 파이썬 코드를 쉽게 실행할 수 있음

설치 방법

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배 느리다는 것을 피보나치 수열 계산을 통해 확인하고 결과를 공유함.

흥미로운 프로젝트긴 하지만, 제 생각엔 그렇게까지 유용할지는 아직 모르겠네요..
앞에서도 언급되었지만 Jython과 IronPython도 결국 CPython의 버전을 따라가기 벅차서 아주 한정된 곳에서만 쓸만한 선택지가 되어버렸는데, 다른 사람들이 RustPython에 기대하는 부분을 만족시키려면 갈 길이 꽤 멀 거라고 생각합니다.