Jaspy는 몇 가지 독특한 기능을 갖춘 JavaScript로 처음부터 완전히 쓰여진 파이썬 VM입니다. Jaspy는 여러 스레드를 지원하고 원격 디버깅을 제공하고 유연한 전처리 기반 아키텍처를 제공하는 통합 디버거가 제공됩니다. 속도는이 프로젝트의 주요 목표가 아닙니다. Jaspy는 새로운 방법을 탐색하여 클라이언트 측의 웹 프로그래밍을 수행 할 수있는 방법을 설명하는 것을 목표로합니다.
Jaspy는 통합 개발 서버와 대화식 디버거와 함께 제공됩니다!
이미 설치되지 않은 경우 의존성을 먼저 설치하십시오.
pip3 install --user -r requirements.txt
pip3 install --user ptpython pygments저장소를 복제하고 통역사를 작성하십시오.
git clone --recursive https://github.com/koehlma/jaspy.git ; cd jaspy
python3 build.py # build the interpreter예제 디렉토리로 전환하고 대화식 모드에서 서버를 시작하십시오.
cd example
PYTHONPATH=../ python3 -m jaspy.cli --interactive브라우저에서 http : // localhost : 8080/hello.html을 방문하고 실행을 클릭하십시오.
이미 다른 많은 Python-to-JavaScript 접근 방식이 있습니다.
그들 중 대부분은 Jaspy보다 빠르지 만 Jaspy의 고유 한 기능을 제공하는 것은 없으며 스레딩 지원, 통합 디버거 및 유연한 전처리 기반 아키텍처를 갖춘 완전히 정지 가능한 통역사입니다.
Jaspy가 실제로 얼마나 느리게하는지 인상을 얻으려면!
| 파이 스톤/초 | |
|---|---|
| jaspy (활성화 디버거, 스레딩 활성화) | 195 |
| jaspy (비활성화 디버거, 활성화 스레딩) | 199 |
| jaspy (비활성화 디버거, 비활성화 스레딩) | 206 |
| 브라스톤 | 4184 |
| pypy.js (콜드) | 41425 |
| pypy.js (따뜻함) | 847457 |
그러나 이것은 DOM 조작이나 다른 브라우저에 특정한 브라우저가 진행되지 않기 때문에 다소 불공평 한 벤치 마크입니다. 놀랍게도 스레딩 및 디버깅은 거의 오버 헤드가 없습니다.
이 프로젝트는 여전히 알파 상태에 있습니다. API는 불안정하고 테스트되지 않았으며 생산적인 용도로 준비되지 않았습니다. 위에 나열된 기능 중 일부는 아직 구현되지 않았습니다.
나는 학기 휴식 시간 에이 프로젝트를 시작했고 이제 새 학기가 시작되면서 여가 시간이 훨씬 적습니다. 그러므로 더 많은 시간을 투자 할 수있을 때까지는 시간이 걸릴 수 있습니다. 그러나 나는 모든 종류의 공헌을 매우 환영합니다.
Jaspy의 아이디어가 마음에 들면 자유롭게 참여하십시오.해야 할 일이 많이 있습니다.
코드 나 일반적으로 기여하는 과정에 대해 불분명 한 것이 있는지 주저하지 말고 묻지 마십시오.
| Libs : | 타사 종속성 |
|---|---|
| 모듈 : | 번들 된 기본 JavaScript 모듈 |
| SRC : | JavaScript 소스 파일 (사전 처리해야 함) |
| Jaspy : | 파이썬 서버, 컨버터 및 원격 디버거 |
내장 클래스 코드의 많은 부분에 영감을 주신 Brython 프로젝트에 감사드립니다. 통역사의 작동 방식을 알고 싶다면 좋은 출발점 인“500 라인 이하”책 덕분에 많은 감사를드립니다.