Extism هو إطار عمل خفيف الوزن للبناء باستخدام WebAssembly (Wasm). وهو يدعم تشغيل كود Wasm على الخوادم، وEdge، وCLIs، وIoT، والمتصفحات وكل شيء بينهما. تم تصميم Extism ليكون "عالميًا" من حيث أنه يدعم واجهة مشتركة، بغض النظر عن مكان تشغيله.
ملحوظة: إحدى حالات الاستخدام الأساسية لـ Extism هي إنشاء برامج ومكونات إضافية قابلة للتوسيع . هل تريد أن تكون قادرًا على تنفيذ تعليمات برمجية عشوائية وغير موثوقة من المستخدمين لديك؟ الوجود يجعل هذا الأمر آمنًا وعمليًا.
بالإضافة إلى ذلك، تضيف Extism بعض الأدوات المساعدة الإضافية بالإضافة إلى أوقات تشغيل Wasm القياسية. على سبيل المثال، نحن ندعم متغيرات نطاق الذاكرة/الوحدة الثابتة، وHTTP الآمن الذي يتحكم فيه المضيف بدون WASI، ومحددات ومؤقتات وقت التشغيل، وربط وظائف المضيف بشكل أبسط، والمزيد. يبني مستخدمو الوجودية:
اختر SDK لاستيراده إلى برنامجك، وارجع إلى الوثائق للبدء:
يكتب | لغة | كود المصدر | طَرد |
---|---|---|---|
الصدأ SDK | https://github.com/extism/extism/tree/main/runtime | الصناديق.io | |
شبيبة SDK | https://github.com/extism/js-sdk (يدعم الويب والعقدة والدينو والبون!) | الآلية الوقائية الوطنية | |
إكسير SDK | https://github.com/extism/elixir-sdk | عرافة | |
اذهب SDK | https://github.com/extism/go-sdk | اذهب إلى الوضع | |
هاسكل SDK | https://github.com/extism/haskell-sdk | الاختراق | |
جافا SDK | https://github.com/extism/Java-sdk | سوناتايب | |
صافي SDK | https://github.com/extism/dotnet-sdk (يدعم C# وF#!) | نوجيت | |
أوكامل SDK | https://github.com/extism/ocaml-sdk | com.opam | |
بيرل SDK | https://github.com/extism/perl-sdk | CPAN | |
PHP SDK | https://github.com/extism/php-sdk | التعبئة والتغليف | |
بايثون SDK | https://github.com/extism/python-sdk | بيبي | |
روبي SDK | https://github.com/extism/Ruby-sdk | روبيجيمز | |
منعرج SDK | https://github.com/extism/zig-sdk | لا يوجد | |
ج SDK | https://github.com/extism/extism/tree/main/libextism | لا يوجد | |
سي ++ SDK | https://github.com/extism/cpp-sdk | لا يوجد |
يجب على مضيفي Extism (الذي يقومون بتشغيل SDK) تنفيذ تعليمات WebAssembly البرمجية التي تحتوي على مكتبة PDK، أو Plug-in Development Kit، التي تم تجميعها في الملف الثنائي .wasm
. تسهل PDK على مؤلفي أكواد المكونات الإضافية/الامتدادات قراءة المدخلات من المضيف وإرجاع البيانات مرة أخرى، وقراءة التكوين المقدم، وتعيين/الحصول على المتغيرات، وإجراء مكالمات HTTP الصادرة إذا كان مسموحًا بها، والمزيد.
اختر PDK لاستيراده إلى برنامج Wasm الخاص بك، وارجع إلى الوثائق للبدء:
يكتب | لغة | كود المصدر | طَرد |
---|---|---|---|
الصدأ PDK | https://github.com/extism/rust-pdk | الصناديق.io | |
شبيبة PDK | https://github.com/extism/js-pdk | لا يوجد | |
بايثون بي دي كيه | https://github.com/extism/python-pdk | لا يوجد | |
اذهب إلى حزب العمال الديمقراطي | https://github.com/extism/go-pdk | اذهب إلى الوضع | |
هاسكل PDK | https://github.com/extism/haskell-pdk | الاختراق | |
التجميعي سكريبت PDK | https://github.com/extism/assemblyscript-pdk | الآلية الوقائية الوطنية | |
صافي بك | https://github.com/extism/dotnet-pdk (يدعم C# وF#!) | نوجيت | |
سي بي دي كيه | https://github.com/extism/c-pdk | لا يوجد | |
سي++ بي دي كيه | https://github.com/extism/cpp-pdk | لا يوجد | |
منعرج PDK | https://github.com/extism/zig-pdk | لا يوجد |
غالبًا ما يكون من المفيد جدًا تحديد مخطط لوصف تواقيع الوظائف والأنواع التي تريد استخدامها بين لغات Extism SDK وPDK.
XTP Bindgen هو إطار عمل مفتوح المصدر لإنشاء روابط PDK للمكونات الإضافية Extism. يتم استخدامه بواسطة منصة XTP، ولكن يمكن استخدامه خارج النظام الأساسي لتحديد أي نظام إضافي متوافق مع Extism.
xtp
CLI.انظر تعليمات التثبيت هنا.
version : v1-draft
exports :
CountVowels :
input :
type : string
contentType : text/plain; charset=utf-8
output :
$ref : " #/components/schemas/VowelReport "
contentType : application/json
# components.schemas defined in example-schema.yaml...
راجع مثالاً في example-schema.yaml، أو مثالاً كاملاً عن "حوض المطبخ" في صفحة المستندات.
xtp plugin init --schema-file ./example-schema.yaml
> 1. TypeScript
2. Go
3. Rust
4. Python
5. C#
6. Zig
7. C++
8. GitHub Template
9. Local Template
سيؤدي هذا إلى إنشاء مشروع إضافي كامل لتبدأ به. قم بتنفيذ الوظيفة (الوظائف) الفارغة، وقم بتشغيل xtp plugin build
لتجميع المكون الإضافي الخاص بك.
لمزيد من المعلومات حول XTP Bindgen، راجع مستودع dylibso/xtp-bindgen ووثائق مخطط XTP الرسمية.
إذا واجهت أي مشاكل أو لديك أي أسئلة، يرجى الانضمام إلى Discord وإعلامنا بذلك. مجتمعنا سريع الاستجابة ويسعده مساعدتك في البدء.
توجه إلى موقع المشروع لمزيد من المعلومات والمستندات. ضع في اعتبارك أيضًا قراءة نظرة عامة على Extism وأهدافها ومنهجها.
شكرًا لك على التفكير في المساهمة في Extism، ويسعدنا مساعدتك في إجراء علاقات عامة أو العثور على شيء للعمل عليه!
أسهل طريقة للبدء هي الانضمام إلى Discord أو فتح مشكلة في متتبع مشكلات extism/proposals
، والتي يمكن أن تصبح في النهاية اقتراح تحسين Extism Improvement Proposal (EIP).
لمزيد من المعلومات، يرجى قراءة دليل المساهمة.
Extism هو منتج مفتوح المصدر من الفريق في:
تواصل معنا وأخبرنا بما تقوم ببنائه! نحن نحب أن نساعد: [email protected]