Jaspy adalah VM Python yang ditulis sepenuhnya dari awal di JavaScript dengan beberapa fitur unik. Jaspy mendukung banyak utas, dilengkapi dengan debugger terintegrasi yang menawarkan debugging jarak jauh dan menyediakan arsitektur berbasis preprosesor yang fleksibel. Kecepatan secara eksplisit bukan tujuan utama dari proyek ini. Jaspy bertujuan untuk menggambarkan bagaimana pemrograman web di sisi klien dapat dilakukan dengan mengeksplorasi cara -cara baru.
Jaspy hadir dengan server pengembangan terintegrasi dan debugger interaktif!
Pertama instal dependensi, jika belum diinstal:
pip3 install --user -r requirements.txt
pip3 install --user ptpython pygmentsKloning repositori dan bangun penerjemah:
git clone --recursive https://github.com/koehlma/jaspy.git ; cd jaspy
python3 build.py # build the interpreterBeralih ke Direktori Contoh dan mulai server dalam mode interaktif:
cd example
PYTHONPATH=../ python3 -m jaspy.cli --interactiveKunjungi http: // localhost: 8080/hello.html di browser Anda dan klik jalankan:
Sudah ada banyak pendekatan Python-to-Javascript lainnya di luar sana:
Sebagian besar dari mereka lebih cepat dari Jaspy tetapi tidak satupun dari mereka menawarkan fitur unik dari Jaspy, yang merupakan penerjemah yang sepenuhnya dapat ditangguhkan dengan dukungan threading, debugger terintegrasi dan arsitektur berbasis preprocessor yang fleksibel.
Hanya untuk mendapatkan kesan betapa lambatnya Jaspy!
| Pypones/kedua | |
|---|---|
| Jaspy (Debugger Diaktifkan, Threading Diaktifkan) | 195 |
| Jaspy (Debugger Dinonaktifkan, Threading Diaktifkan) | 199 |
| Jaspy (Debugger Dinonaktifkan, Threading Dinonaktifkan) | 206 |
| Brython | 4184 |
| Pypy.js (dingin) | 41425 |
| Pypy.js (hangat) | 847457 |
Namun ini adalah tolok ukur yang agak tidak adil karena tidak ada manipulasi DOM atau spesifik browser lainnya. Secara mengejutkan yang menyantang dan men -debug memperkenalkan hampir tidak ada overhead.
Proyek ini masih dalam keadaan alpha. API tidak stabil, tidak teruji dan tidak siap untuk digunakan secara produktif. Beberapa fitur yang tercantum di atas belum diimplementasikan.
Saya memulai proyek ini di istirahat semester saya dan sekarang, ketika semester baru dimulai, saya memiliki waktu luang yang jauh lebih sedikit. Oleh karena itu mungkin perlu beberapa saat sampai saya akan dapat menginvestasikan lebih banyak waktu ke dalamnya. Namun saya sangat menyambut segala macam kontribusi.
Jika Anda menyukai ide -ide jaspy, jangan ragu untuk bergabung, ada banyak hal yang harus dilakukan:
Jangan ragu untuk berkontribusi atau bertanya apakah ada yang tidak jelas tentang kode atau proses berkontribusi secara umum.
| LIBS: | Ketergantungan pihak ketiga |
|---|---|
| Modul: | Modul JavaScript asli yang dibundel |
| SRC: | File sumber javascript (perlu diproses) |
| Jaspy: | Server python, konverter dan debugger jarak jauh |
Terima kasih banyak kepada Proyek Brython atas inspirasi untuk banyak bagian Kode Kelas Bangun. Banyak terima kasih juga untuk buku "500 Lines atau Less" yang merupakan titik awal yang baik jika Anda ingin tahu bagaimana penerjemah bekerja.