Jaspyは、いくつかのユニークな機能を備えたJavaScriptで完全にゼロから書かれたPython VMです。 Jaspyは複数のスレッドをサポートし、リモートデバッグを提供し、柔軟なプリプロセッサベースのアーキテクチャを提供する統合デバッガーが付属しています。速度は明示的にこのプロジェクトの主な目標ではありません。 Jaspyは、クライアント側でのWebプログラミングが新しい方法を模索することでどのように実行できるかを説明することを目指しています。
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が本当に遅い印象を得るために!
| Pystones/second | |
|---|---|
| Jaspy(有効なデバッガー、有効なスレッド) | 195 |
| Jaspy(無効なデバッガー、有効なスレッド) | 199 |
| Jaspy(無効なデバッガー、無効なスレッド) | 206 |
| ブリソン | 4184 |
| pypy.js(コールド) | 41425 |
| pypy.js(暖かい) | 847457 |
ただし、DOMの操作や他のブラウザ固有のものがないため、これはやや不公平なベンチマークです。驚くべきことに、スレッドとデバッグは、オーバーヘッドをほとんど紹介しません。
このプロジェクトはまだアルファ状態です。 APIは不安定で、テストされていないため、生産的な使用ができていません。上記の機能のいくつかはまだ実装されていません。
私は学期の休憩でこのプロジェクトを開始しましたが、今、新しい学期が始まると、余暇がはるかに少なくなりました。したがって、私がそれにもっと多くの時間を投資できるようになるまで、それはしばらく時間がかかるかもしれません。しかし、私はあらゆる種類の貢献を大いに歓迎します。
Jaspyのアイデアが好きなら、お気軽に参加してください。やるべきことがたくさんあります。
コードや貢献の一般的なプロセスについて不明確なものがあるかどうかを紹介することをheしないでください。
| libs: | サードパーティの依存関係 |
|---|---|
| モジュール: | バンドルされたネイティブJavaScriptモジュール |
| SRC: | javascriptソースファイル(前処理する必要があります) |
| Jaspy: | Pythonサーバー、コンバーター、リモートデバッガー |
ビルトインクラスのコードの多くの部分にインスピレーションを与えてくれたBrython Projectに感謝します。また、「500ライン以下」という本にも感謝します。これは、通訳がどのように機能するかを知りたい場合は良い出発点です。