عن المشروع

Silk.NET هي مكتبة ارتباطات .NET لواجهات برمجة الوسائط المتعددة والرسومات والحوسبة منخفضة المستوى. تستهدف OpenGL وOpenCL وOpenAL وOpenXR وGLFW وSDL وVulkan وAssimp وWebGPU وDirectX، وهي مخصصة لبناء تطبيقات الرسومات ثلاثية الأبعاد والصوت والحوسبة والاهتزاز عبر الأنظمة الأساسية بلغة C#. الخصائص الرئيسية التي وصفها المشروع: - الأداء: تم فحص كود C# المولّد وتجميعه عبر JIT للحفاظ على انخفاض الحمل الناتج عن الارتباطات. - ارتباطات محدّثة: تنتج آلية إعادة توليد فعّالة ارتباطات من المصادر الأصلية مع تحديثات متكررة. - أدوات عالية المستوى: بالإضافة إلى الارتباطات المباشرة، توفر أغلفة وتجريدات مستقلة عن النظام الأساسي للنوافذ والإدخال، بحيث يمكن للتطبيقات استهداف العديد من الأنظمة الأساسية دون تغييرات في الكود. - نطاق شامل: الرسومات والحوسبة والصوت والإدخال والنوافذ في حل واحد. التوافق: يعمل على أي نظام أساسي متوافق مع .NET Standard 2.0، بما في ذلك .NET 6.0 وXamarin و.NET Framework 4.6.1+ و.NET Core 2.0+. حالة المشروع: Silk.NET 3.0 قيد التطوير، ويركز على إعادة صياغة طريقة توليد ارتباطات C# ومعالجة النقاط المؤلمة. صيانة Silk.NET 2.X محدودة لأن الفريق يتكون من متطوعين؛ وتُصدر تحديثات 2.X بشكل غير منتظم. يدعو ملف README المساهمين والمشرفين للمساعدة في استدامة 2.X. يتطلب البناء من المصدر حزم SDK الخاصة بـ .NET 6 و.NET 7، وأعباء عمل Android/iOS/Mac Catalyst، وإصدارات Android SDK 31 و33 و34 مع أدوات NDK، وJava JDK 11+، واختياريًا Visual Studio 2022 17.0+. تُنفَّذ عمليات البناء عبر build.sh أو build.cmd أو build.ps1 أو nuke compile؛ وينتج nuke pack حزم NuGet. تتوفر إجراءات بناء أخرى مثل FullBuild وPack وFullPack عبر nuke --plan. تتبع المساهمة نهج طلب السحب المبكر: قم بعمل fork، وأنشئ فرعًا بعمل commit فارغ، وافتح طلب سحب مسودة قبل بدء العمل، وقم بعمل commits بزيادات صغيرة، ثم اطلب المراجعة. الحل كبير جدًا، ويشرح CONTRIBUTING.md كيف تساعد عملية البناء في إدارته. الحوكمة والترخيص: Silk.NET مشروع رسمي لمؤسسة .NET تحت ترخيص MIT/X11، مع تبعيات تحت تراخيص متوافقة مع MIT، ويعتمد مدونة قواعد السلوك Contributor Covenant. يقبل المشروع الدعم المالي ويشير إلى دعم JetBrains بتراخيص IDE مفتوحة المصدر. تتوفر الأمثلة في مجلد الأمثلة بالمستودع، ويتواصل الفريق عبر Discord.