WebAssemblyで実行中のオンラインデモをご覧ください。
Rustpythonには、2023年2月7日の錆の最新バージョンが必要です(例:1.67.1)。現在、システムにRustがインストールされていない場合は、Rustup.rsの指示に従うことでそうすることができます。
現在実行しているRustのバージョンを確認するには、 rustc --version
を使用してください。更新を希望する場合、 rustup update stable
Rustのインストールを最新の安定したリリースに更新します。
Rustpythonをローカルに構築するには、最初にソースコードをクローンします。
git clone https://github.com/RustPython/RustPython
その後、Rustpythonディレクトリに変更してデモを実行できます(注: - Windowsのスタックオーバーフローを防ぐために--release
が必要です):
$ cd RustPython
$ cargo run --release demo_closures.py
Hello, RustPython !
または、インタラクティブシェルを使用します。
$ cargo run --release
Welcome to rustpython
>>>>> 2+2
4
注:Windowsユーザーの場合は、Project DirectoryのLib
PathとしてRUSTPYTHONPATH
環境変数を設定してください。 (例えば、RustpythonディレクトリがC:RustPython
の場合、 RUSTPYTHONPATH
C:RustPythonLib
として設定します)
また、次のようにRustpythonをインストールして実行することもできます。
$ cargo install --git https://github.com/RustPython/RustPython
$ rustpython
Welcome to the magnificent Rust Python interpreter
>>>>>
HTTPSリクエストを作成したい場合は、 ssl
機能を有効にすることができます。これにより、 pip
パッケージマネージャーをインストールできます。 Windowsでは、 make
をインストールする必要がある場合があります。または、代わりにssl-vendor
機能を有効にすることができます。 OpenSSLバージョン3がCIで予想され、テストされています。古いバージョンが機能しない場合があります。
SSLサポート付きのRustpythonをインストールしたら、実行してPIPをインストールできます。
cargo install --git https://github.com/RustPython/RustPython --features ssl
rustpython --install-pip
conda
Package ManagerからRustpythonをインストールすることもできますが、これは公式にはサポートされておらず、時代遅れになる可能性があります。
conda install rustpython -c conda-forge
rustpython
RustpythonをスタンドアロンのWebAssembly WASIモジュールにコンパイルして、どこでも実行できます。
建てる
cargo build --target wasm32-wasi --no-default-features --features freeze-stdlib,stdlib --release
WASMERによって運営されています
wasmer run --dir ` pwd ` -- target/wasm32-wasi/release/rustpython.wasm ` pwd ` /extra_tests/snippets/stdlib_random.py
WAPMによって実行されます
$ wapm install rustpython
$ wapm run rustpython
>>>>> 2+2
4
WebAssembly WASIファイルを次のように作成できます。
cargo build --release --target wasm32-wasi --features= " freeze-stdlib "
注:
freeze-stdlib
使用して、バイナリ内に標準ライブラリを含めます。また、rustup target add wasm32-wasi
実行する必要があります。
Rustpythonには、Python関数をネイティブコードにコンパイルする非常に実験的なJITコンパイラがあります。
デフォルトでは、JITコンパイラが有効になっていないため、 jit
カーゴ機能で有効になっています。
cargo run --features jit
これには、Autoconf、Automake、Libtool、およびClangをインストールする必要があります。
関数をコンパイルするには、 __jit__()
を呼び出します。
def foo ():
a = 5
return 10 + a
foo . __jit__ () # this will compile foo to native code and subsequent calls will execute that native code
assert foo () == 15
さびに書かれたアプリケーションでPythonスクリプトを公開することに興味があります。おそらく、錆のコンパイル時間が抑制される場所ですぐに微調整する論理を可能にしますか?次に、 examples/hello_embed.rs
and examples/mini_repl.rs
何らかの支援があるかもしれません。
Rustpythonは開発中であり、通訳は確かにWASMでPythonを実行してRustプロジェクトに埋め込むなどの興味深いユースケースで使用できますが、Rustpythonは完全に生産対応ではないことに注意してください。
貢献は大歓迎です!これの詳細については、貢献セクションを参照してください。
会議に関するこれらの講演をチェックアウトしてください:
Rustpythonはかなり若いプロジェクトですが、クールなプロジェクトを作るためにそれを使用しています。
現在、プロジェクトの他の領域とともに、ドキュメントはまだ早い段階にあります。
最新リリースまたはユーザーガイドのオンラインドキュメントを読むことができます。
実行して、ローカルでドキュメントを生成することもできます。
cargo doc # Including documentation for all dependencies
cargo doc --no-deps --all # Excluding all dependencies
ドキュメントHTMLファイルはtarget/doc
ディレクトリにあります。または、以前のコマンドを追加して、デフォルトのブラウザでドキュメント--open
自動的に開くように追加できます。
コンポーネントの高レベルの概要については、アーキテクチャドキュメントを参照してください。
貢献は大歓迎です。多くの場合、PRSまたはDiscordで貢献者を導くことができます。開発に関するヒントについては、開発ガイドも参照してください。
それを念頭に置いて、このプロジェクトはボランティアによって維持されていることに注意してください。始めるための最良の方法のいくつかは以下にあります。
ほとんどのタスクは、問題トラッカーにリストされています。コーディングを開始したい場合は、良い最初の問題でラベル付けされた問題を確認してください。
cpythonの互換性を高めるには、この記事をチェックして、cpython unittestによるRustpythonに貢献する方法を確認して、最も適切でないカバレッジを増やすようにしてください。
別のアプローチは、ソースコードをチェックアウトすることです。ビルドイン関数とオブジェクトメソッドは、多くの場合、貢献する最も簡単で簡単な方法です。
また、 ./whats_left.py
を実行して、実装されていない方法を見つけるのを支援することもできます。
このドキュメントを参照してください
Discordで私たちとチャットしてください。
私たちの行動規範はここにあります。
最初の作業は、Windelbouwman/RspythonとShinglyu/Rustpythonに基づいていました
これらは、関連するプロジェクトへのいくつかの有用なリンクです。
このプロジェクトは、MITライセンスの下でライセンスされています。詳細については、ライセンスファイルをご覧ください。
プロジェクトのロゴは、CC-by-4.0ライセンスの下でライセンスされています。詳細については、ライセンスロゴファイルをご覧ください。