تهيئة YAML (.yaml)

مواصفة قياسي

YAML (اختصار لعبارة «YAML ليست لغة ترميز») هو تنسيق تسلسلي للبيانات شائع في عمليات DevOps والبنية التحتية السحابية الحديثة، مثل Kubernetes وDocker Compose، وأتمتة CI/CD. ويعتمد على المسافات البادئة الواضحة لتسهيل القراءة.

تحويل YAML إلى JSON

محول مجاني داخل المتصفح للتحويل من YAML إلى JSON. قم بتحويل الملفات فوراً على جهازك.

فحص البيانات الوصفية

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات YAML من خلال فحص تسلسل البايت الثنائي البادئ:

اختر الملفات أو أسقطها هنا

خاص - لا تغادر الملفات جهازك أبدًا

أو الصق Ctrl+V
ضمان الخصوصية وعدم الإرسال عبر الشبكة: صفر بايت يتم رفعه إلى خوادم خارجية. تمت كل عمليات المعالجة محلياً في صندوق الحماية (Sandbox) الخاص بمتصفحك.

توقيع رأس الملف على مستوى البايت (Magic Bytes)

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات YAML من خلال فحص تسلسل البايت الثنائي البادئ:

التوقيع الست عشري (الإزاحة 0):

2D 2D 2D 0A

تمثيل ASCII: ---\n

التوحيد القياسي: مواصفة YAML 1.2.2

المواصفات الفنية

هيكلية الحاويةتنسيق تسلسلي للبيانات سهل القراءة يعتمد على المسافات البادئة، وهو مجموعة شاملة من JSON ويدعم المراسي والأسماء المستعارة
الضغطتدفق نصي غير مضغوط
ترتيب البايتات (Endianness)تدفق نصي بترميز UTF-8 أو Unicode
مساحات الألوانلا ينطبق (تسلسل بيانات)
القنوات والبنيةتعيينات (قاموس مفاتيح وقيم) وتسلسلات (قوائم) وقيم مفردة (نصوص وأعداد وقيم منطقية) ومراسي (&ref و*ref)
الحد الأقصى للأبعادحجم المستند غير محدود (ويمكن فصل المستندات المتعددة بالعلامة ---)
الشفافيةNone
البث والتحميل التدرجيتتيح تدفقات المستندات المتعددة معالجة كل مستند بالتتابع

مصفوفة المقارنة التقنية: YAML مقابل المنافسين

السمة التقنيةYAML (الحالي)JSONTOMLXML
أسلوب الصياغةتسلسل هرمي تحدده المسافات البادئةاستخدام صارم للأقواس وعلامات الاقتباسجداول وأزواج مفتاح=قيمةوسوم فتح وإغلاق مطوّلة
دعم التعليقاتمدعوم أصليًا (تعليقات تبدأ بـ #)غير مسموح بالتعليقاتمدعوم أصليًا (تعليقات تبدأ بـ #)تعليقات بصيغة <!-- تعليق -->
انتشار الاستخدام في DevOpsيختلف الدعم حسب البرنامج.يختلف الدعم حسب البرنامج.تكوين حزمة Rust/Pythonإعدادات المؤسسات القديمة
إعادة استخدام البياناتمراسي وأسماء مستعارة مدمجة (& و*)لا يوجد (نسخ يدوي)لا يوجد (نسخ يدوي)كيانات XML

أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري

خطأ في المُحلل: 'mapping values are not allowed here' أو خطأ في المسافة البادئة.

السبب الجذري: الخلط بين علامات الجدولة والمسافات، أو عدم اتساق مستويات الإزاحة.

الاسترداد: حوّل علامات الجدولة إلى مسافات، وتحقق من صحة الصياغة باستخدام منسّق YAML من File2File.app.

تحليل الأمان ومتجهات الهجوم على المحلّل

أتاحت محللات YAML التي تدعم وسوم الأنواع المخصصة (مثل 'yaml.load()' في PyYAML) تاريخيًا تنفيذ تعليمات برمجية عن بُعد عبر إنشاء كائنات اعتباطية.

ناقلات الهجوم المعروفة

  • تنفيذ تعليمات برمجية اعتباطية عبر وسوم إلغاء تسلسل الكائنات غير الآمن (مثل '!!python/object/apply').
  • هجمات تضخيم الكيانات (على غرار هجوم «مليار ضحكة» باستخدام مراسي YAML وأسمائها المستعارة).
  • ثغرات خلط الأنواع بسبب التحليل الضمني للقيم المنطقية والطوابع الزمنية.

أفضل الممارسات الدفاعية: استخدم دائمًا محللات YAML الآمنة (مثل yaml.safe_load() في Python)، وحدد أقصى عمق لتوسيع المراسي.

الأصول التاريخية والمحطات الرئيسية

2021نُشرت مراجعة YAML 1.2.2، التي حسّنت التوافق مع JSON ونقّحت تعريفات القواعد الرسمية.
2009جعل YAML 1.2 التنسيق مجموعة شاملة صارمة من JSON، أي إن كل ملف JSON صالح يُعد أيضًا ملف YAML صالحًا.
2001ابتكر كلارك إيفانز وإينغي دوت نت وأورين بن-كيكي YAML بوصفه بديلًا سهل القراءة للبشر عن XML.

المزايا الرئيسية والإيجابيات

  • يشيع استخدام YAML في أدوات البنية التحتية، لكن الدعم والسلوك يختلفان حسب التطبيق.
  • صياغة واضحة وسهلة القراءة، تتجنب كثرة الأقواس وعلامات الاقتباس بفضل المسافات البادئة البديهية.
  • يدعم المراجع والمراسي (&anchor و*anchor) لإعادة استخدام كتل الإعدادات بدلًا من تكرارها.

القيود الفنية والسلبيات

  • يتأثر YAML بالمسافات البيضاء: فقد يؤدي إدخال علامة جدولة أو إضافة مسافة واحدة إلى إفساد بنية المستند أو التسبب في خطأ عند تحليله.
  • أخطاء شهيرة في تحويل الأنواع: قد تتحول كلمات غير محاطة بعلامات اقتباس مثل 'no' أو 'on' أو 'yes'، أو رموز البلدان مثل 'NO' للنرويج، بصمت إلى قيم منطقية.
  • سرعة تحليل أبطأ بكثير مقارنة بالتنسيقات الثنائية أو JSON الصارم.

معلومات تقنية طريفة

  • كان YAML اختصارًا في الأصل لعبارة Yet Another Markup Language، ثم أُعيد تفسيره مازحًا ليصبح اختصارًا تراجعيًا لعبارة YAML Ain’t Markup Language، تأكيدًا على أن التنسيق مخصص لتسلسل البيانات.
  • «مشكلة النرويج» خطأ برمجي شهير فُسّر فيه رمز الدولة 'NO' في ملف YAML على أنه القيمة المنطقية 'false'.
  • كل ملف JSON صالح هو أيضًا ملف YAML صالح بالكامل.

الأسئلة التقنية المتكررة

فيمَ يُستخدم YAML؟

تُعد YAML لغة الإعدادات الأساسية للحوسبة السحابية، ونشر عناقيد Kubernetes، وملفات Docker Compose، وسير عمل GitHub Actions، وإعدادات البرامج.

هل يمكن استخدام علامات الجدولة في ملفات YAML؟

لا. تحظر مواصفات YAML الرسمية استخدام علامات الجدولة للمسافات البادئة؛ استخدم المسافات دائمًا (غالبًا مسافتين لكل مستوى).

كيف يمكنني تحويل YAML إلى JSON؟

يمكنك تحويل ملفات YAML إلى ملفات JSON سليمة وصالحة بنقرة واحدة عبر File2File.app في متصفحك، مع الحفاظ على خصوصية ملفاتك.