تحقق من العرض التوضيحي عبر الإنترنت على Webassembly.
يتطلب Rustpython إصدارًا مستقرًا للأحدث (على سبيل المثال 1.67.1 في 7 فبراير 2023). إذا لم يكن لديك حاليًا تثبيت Rust على نظامك ، فيمكنك القيام بذلك عن طريق متابعة التعليمات في Rustup.rs.
للتحقق من إصدار Rust الذي تقوم بتشغيله حاليًا ، استخدم rustc --version
. إذا كنت ترغب في التحديث ، فسيقوم rustup update stable
بتحديث تثبيت الصدأ إلى أحدث إصدار مستقر.
لبناء Rustpython محليًا ، أولاً ، استنساخ رمز المصدر:
git clone https://github.com/RustPython/RustPython
ثم يمكنك التغيير إلى دليل Rustpython وتشغيل العرض التوضيحي (ملاحظة: --release
حاجة إلى إصدار لمنع تدفق المكدس على Windows):
$ cd RustPython
$ cargo run --release demo_closures.py
Hello, RustPython !
أو استخدم القشرة التفاعلية:
$ cargo run --release
Welcome to rustpython
>>>>> 2+2
4
ملاحظة: بالنسبة لمستخدمي Windows ، يرجى تعيين متغير بيئة RUSTPYTHONPATH
كمسار Lib
في دليل المشروع. (على سبيل المثال عندما يكون دليل RustPython C:RustPython
، قم بتعيين RUSTPYTHONPATH
As C:RustPythonLib
)
يمكنك أيضًا تثبيت Rustpython وتشغيله بما يلي:
$ cargo install --git https://github.com/RustPython/RustPython
$ rustpython
Welcome to the magnificent Rust Python interpreter
>>>>>
إذا كنت ترغب في تقديم طلبات HTTPS ، فيمكنك تمكين ميزة ssl
، والتي تتيح لك أيضًا تثبيت pip
Package Manager. لاحظ أنه على Windows ، قد تحتاج إلى تثبيت OpenSSL ، أو يمكنك تمكين ميزة ssl-vendor
بدلاً من ذلك ، والتي تجمع OpenSSL لك ولكن تتطلب برنامج التحويل البرمجي C ، Perl ، make
. OpenSSL الإصدار 3 متوقع واختبار في CI. قد لا تعمل الإصدارات القديمة.
بمجرد تثبيت Rustpython مع دعم SSL ، يمكنك تثبيت PIP عن طريق التشغيل:
cargo install --git https://github.com/RustPython/RustPython --features ssl
rustpython --install-pip
يمكنك أيضًا تثبيت Rustpython من خلال Manager conda
، على الرغم من أن هذا غير مدعوم رسميًا وقد يكون قديمًا:
conda install rustpython -c conda-forge
rustpython
يمكنك تجميع Rustpython إلى وحدة Webassembly المستقلة حتى يمكن تشغيلها في أي مكان.
يبني
cargo build --target wasm32-wasi --no-default-features --features freeze-stdlib,stdlib --release
يديرها واسمر
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 على مترجم JIT التجريبي للغاية الذي يقوم بتجميع وظائف Python في الكود الأصلي.
بشكل افتراضي ، لم يتم تمكين برنامج التحويل البرمجي Jit ، يتم تمكينه باستخدام ميزة jit
Cargo.
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
مهتم بتعريض البرمجة البرمجية للثعبان في تطبيق مكتوب في الصدأ ، وربما للسماح بسرعة بالتعديل المنطقي حيث تكون أوقات ترجمة الصدأ مثبطًا؟ ثم examples/hello_embed.rs
examples/mini_repl.rs
قد تكون من بعض المساعدة.
Rustpython قيد التطوير ، وبينما يمكن استخدام المترجم المترجم بالتأكيد في حالات الاستخدام المثيرة للاهتمام مثل تشغيل Python في WASM والتضمين في مشروع 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 ، حاول زيادة التغطية غير المألوفة عن طريق التحقق من هذه المقالة: كيفية المساهمة في Rustpython بواسطة Cpython Unittest
هناك طريقة أخرى تتمثل في الخروج من التعليمات البرمجية المصدر: غالبًا ما تكون الوظائف المدمجة وطرق الكائن هي أبسط وأسهل طريقة للمساهمة.
يمكنك أيضًا تشغيل ./whats_left.py
انظر هذا المستند
الدردشة معنا على خلاف.
يمكن العثور على مدونة سلوكنا هنا.
كان العمل الأولي يعتمد على Windelbouwman/rspython و shervilyu/rustpython
هذه بعض الروابط المفيدة للمشاريع ذات الصلة:
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. يرجى الاطلاع على ملف الترخيص لمزيد من التفاصيل.
يتم ترخيص شعار المشروع بموجب ترخيص CC-By-44. يرجى الاطلاع على ملف logo الترخيص لمزيد من التفاصيل.