Jaspy เป็น Python VM ที่เขียนขึ้นทั้งหมดตั้งแต่เริ่มต้นใน JavaScript พร้อมคุณสมบัติที่เป็นเอกลักษณ์ Jaspy รองรับหลายเธรดมาพร้อมกับดีบักเกอร์แบบบูรณาการซึ่งเสนอการดีบักระยะไกลและให้สถาปัตยกรรมที่ใช้ตัวประมวลผลล่วงหน้าที่ยืดหยุ่น ความเร็วไม่ใช่เป้าหมายหลักของโครงการนี้อย่างชัดเจน Jaspy ตั้งเป้าหมายที่จะแสดงให้เห็นว่าการเขียนโปรแกรมเว็บในฝั่งไคลเอ็นต์สามารถทำได้อย่างไรโดยการสำรวจวิธีการใหม่ ๆ
Jaspy มาพร้อมกับเซิร์ฟเวอร์การพัฒนาแบบบูรณาการและ Debugger แบบโต้ตอบ!
ก่อนอื่นติดตั้งการอ้างอิงหากยังไม่ได้ติดตั้ง:
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 ช้าแค่ไหน!
| Pystones/วินาที | |
|---|---|
| jaspy (เปิดใช้งานดีบักเกอร์เปิดใช้งานเธรด) | 195 |
| jaspy (disabled debugger, เปิดใช้งานเธรด) | 199 |
| jaspy (disabled debugger, disabled threading) | 206 |
| เบร ธ อน | 4184 |
| pypy.js (เย็น) | 41425 |
| pypy.js (อบอุ่น) | 847457 |
อย่างไรก็ตามนี่เป็นเกณฑ์มาตรฐานที่ไม่ยุติธรรมเพราะไม่มีการจัดการ DOM หรือสิ่งอื่นใดที่เบราว์เซอร์เกิดขึ้น การทำเกลียวและการดีบักอย่างน่าประหลาดใจแนะนำแทบจะไม่มีค่าใช้จ่าย
โครงการนี้ยังอยู่ในสถานะอัลฟ่า APIs ไม่เสถียรไม่ผ่านการทดสอบและไม่พร้อมสำหรับการใช้งานที่มีประสิทธิผล คุณสมบัติบางอย่างที่ระบุไว้ข้างต้นยังไม่ได้ใช้งาน
ฉันเริ่มโครงการนี้ในช่วงพักภาคเรียนและตอนนี้เมื่อภาคเรียนใหม่เริ่มต้นขึ้นฉันมีเวลาว่างน้อยลง ดังนั้นอาจใช้เวลาสักครู่จนกว่าฉันจะสามารถลงทุนเวลาได้มากขึ้น อย่างไรก็ตามฉันยินดีต้อนรับการมีส่วนร่วมทุกประเภท
หากคุณชอบความคิดของ Jaspy อย่าลังเลที่จะเข้าร่วมมีหลายสิ่งที่ต้องทำ:
อย่าลังเลที่จะมีส่วนร่วมหรือถามว่ามีอะไรที่ไม่ชัดเจนเกี่ยวกับรหัสหรือกระบวนการของการมีส่วนร่วมโดยทั่วไปหรือไม่
| libs: | การพึ่งพาบุคคลที่สาม |
|---|---|
| โมดูล: | โมดูล JavaScript ดั้งเดิม |
| SRC: | ไฟล์ต้นฉบับ JavaScript (จำเป็นต้องประมวลผลล่วงหน้า) |
| Jaspy: | Python Server, Converter และ Remote Debugger |
ขอบคุณมากสำหรับโครงการ Brython สำหรับแรงบันดาลใจสำหรับหลายส่วนของรหัสของคลาสในตัว ขอบคุณมากสำหรับหนังสือ“ 500 บรรทัดหรือน้อยกว่า” ซึ่งเป็นจุดเริ่มต้นที่ดีหากคุณต้องการทราบว่าล่ามทำงานอย่างไร