عن المشروع

Graft مشروع في مرحلة ألفا المبكرة لإعلان أحمال حاويات صغيرة في TOML مُنمّط وجعل Nix وPodman Quadlet وsystemd تُحقّقها. التدفق الموثّق هو: نية TOML -> JSON مُتحقَّق ومحلول -> rootfs مبني بـ Nix -> ملف Quadlet .container -> خدمة systemd -> حاوية Podman. يهدف إلى تجنّب Dockerfile، وتثبيت الحزم وقت التشغيل، وملفات Quadlet المكتوبة يدويًا عبر التحقق من مفاهيم أحمال العمل المدعومة بدلًا من قبول شظايا عشوائية من Podman أو Quadlet أو systemd أو Nix. يصف المستودع خلفية مخزن rootfs لنطاقين: حاويات نظام NixOS / rootful وحاويات مدير المستخدم في Home Manager. تشمل الميزات المدعومة المعلنة الحزم، وأوامر argv، والهوية، ودليل العمل، والبيئة، والخدمات طويلة التشغيل، والمهام المحدودة، ومهام الإعداد، والتشغيل الصريح، وتبعيات أحمال العمل المُنمّطة، وشبكات الحاويات المختارة، والارتباطات للقراءة فقط افتراضيًا، والأحجام المُدارة، وتركيبات tmpfs المحدودة، ومراجع موارد CDI المؤهلة، وعناصر التحكم في التقوية المُنمّطة، والتحقق من المخطط المُولّد، والرفض fail-closed للحقول المحجوزة. تفصل الوثائق بين TOML المقبول في مرجع الإعدادات وحالة القدرات الموثوقة التي تغطي السلوك الحالي، والمخطط له، والمؤجل، والمحظور. تشمل إعدادات الأمان الافتراضية rootfs للقراءة فقط، وإسقاط قدرات وقت التشغيل، وno-new-privileges، مع إبقاء التخفيفات صريحة. لا يضيف Graft سياسة تشغيل تلقائي أو إعادة تشغيل افتراضية، ولا يكوّن بصمت Podman، أو دعم overlay بلا جذر، أو systemd user linger، أو الحسابات، أو قواعد جدار الحماية، أو سياسة DNS. تتشارك الحاويات نواة المضيف ولا تُقدَّم كحد أمان مكافئ للآلة الافتراضية. تعرض الواجهة الخلفية الحالية فقط إغلاق وقت تشغيل Nix المُحقَّق لكل حمل عمل عبر تركيبات مخزن للقراءة فقط إلزامية، دون أي تراجع إلى مخزن كامل. يضع README أداة Graft للخدمات الصغيرة الأصلية لـ Nix وأحمال عمل التطوير التي تستفيد من TOML القابل للمراجعة وملكية systemd. ويسرد بدائل لاحتياجات مختلفة: Quadlet المباشر لتغطية خيارات المنبع الكاملة، وأدوات Compose لسير عمل OCI/Compose، أو حد آلة افتراضية عندما لا يجب أن تشترك أحمال العمل في نواة المضيف. هناك روابط للبدايات السريعة، وخارطة الطريق، والرؤية، وسياسة الأمان، ودليل المساهمة، وفحوصات التطوير، والمشروع مرخّص بموجب Apache-2.0.