Jaspy - это виртуальная машина Python, написанная полностью с нуля в JavaScript с некоторыми уникальными функциями. 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-Javascript:
Большинство из них быстрее, чем Jaspy, но ни один из них не предлагает уникальные особенности Jaspy, которые являются полностью приостановленным переводчиком с поддержкой потоков, интегрированным отладчиком и гибкой архитектурой на основе препроцессора.
Просто чтобы произвести впечатление, как на самом деле медленный на самом деле!
| Пистоны/Второе | |
|---|---|
| Jaspy (включенная отладчик, включенная потока) | 195 |
| Jaspy (отключенный отладчик, включенные потоки) | 199 |
| Jaspy (отключенная отладка, отключенные потоки) | 206 |
| бритт | 4184 |
| Pypy.js (холод) | 41425 |
| Pypy.js (тепло) | 847457 |
Однако это несколько несправедливого эталона, потому что манипуляции с DOM или чем -то еще, специфичное для браузера. Удивительно, но и отладки и отладка почти не вносят накладных расходов.
Этот проект все еще находится в альфа -штате. API нестабильны, он не проверен и не готов к продуктивному использованию. Некоторые из указанных выше функций еще не реализованы.
Я начал этот проект в моем семестре, и теперь, когда начался новый семестр, у меня гораздо меньше свободного времени. Поэтому это может занять некоторое время, пока я не смогу вложить в это гораздо больше времени. Однако я очень приветствую все виды вкладов.
Если вам нравятся идеи JASPY, не стесняйтесь присоединиться, есть много дел:
Не стесняйтесь внести свой вклад или спрашивайте, есть ли что -то неясное в кодексе или процессе внесения вклад в целом.
| Libs: | Сторонние зависимости |
|---|---|
| Модули: | Священные нативные модули JavaScript |
| SRC: | Исходные файлы JavaScript (необходимо предварительно обработать) |
| jaspy: | Python Server, преобразователь и удаленная отладчик |
Большое спасибо Brython Project за вдохновение для многих частей кода встроенных классов. Большое спасибо также книге «500 линий или меньше», которая является хорошей отправной точкой, если вы хотите узнать, как работает переводчик.