تهيئة TOML (.toml)
TOML قياسيتنسيق لغة توم الواضحة البسيطة (TOML) هو تنسيق تكوين واضح وموجه للمستخدم، صممه المؤسس المشارك لـ GitHub توم بريستون-ورنر، وقد تم اعتماده على نطاق واسع عبر أنظمة البرمجة الحديثة بما في ذلك Rust (Cargo) وPython (pyproject.toml).
تحويل TOML إلى JSON
محول مجاني داخل المتصفح للتحويل من TOML إلى JSON. قم بتحويل الملفات فوراً على جهازك.
فحص البيانات الوصفية
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات TOML من خلال فحص تسلسل البايت الثنائي البادئ:
توقيع رأس الملف على مستوى البايت (Magic Bytes)
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات TOML من خلال فحص تسلسل البايت الثنائي البادئ:
التوقيع الست عشري (الإزاحة 0):
5B ... 5Dتمثيل ASCII: [...]
القياسية: TOML v1.0.0 Specification
المواصفات الفنية
| هيكلية الحاوية | Human-readable configuration file mapping unequivocally to a hash table, structured with [tables] and key = value pairs |
| الضغط | Uncompressed text stream |
| ترتيب البايتات (Endianness) | UTF-8 text stream |
| مساحات الألوان | N/A (Configuration File) |
| القنوات والبنية | Tables, arrays of tables, inline tables, strings, integers, floats, booleans, and RFC 3339 datetimes |
| الحد الأقصى للأبعاد | Unbounded text length |
| الشفافية | None |
| البث والتحميل التدرجي | Sequential line-by-line configuration parsing |
مصفوفة المقارنة التقنية: TOML مقابل المنافسين
| السمة التقنية | TOML (الحالي) | YAML | JSON | INI |
|---|---|---|---|---|
| خطر الغموض | صفر (مواصفات دقيقة خالية من الغموض) | مرتفع (أخطاء القيم المنطقية لمشكلة 'النرويج' في YAML) | صفر (أنواع بيانات صارمة) | معتدل (لا يوجد معيار رسمى) |
| أنواع التاريخ والوقت الأصلية | دعم أصلي لتاريخ ووقت RFC 3339 | تحليل ضمني للنصوص / التواريخ | لا يوجد (نصوص فقط) | لا يوجد (نصوص فقط) |
| دعم التعليقات | أصلي (تعليقات #) | أصلي (تعليقات #) | غير مسموح بالتعليقات | أصلي (تعليقات ; و #) |
| النظام البيئي الأساسي | Rust (Cargo), Python (PEP 518), Go | Kubernetes, Ansible, خطوط أنابيب CI/CD | واجهات برمجة تطبيقات الويب، الاتصال عبر المتصفح | نظام ويندوز القديم، تكوين Git |
أنماط التلف الشائعة ودليل استرداد النظام السداسي
خطأ في المُحلل: 'Duplicate key in table' أو 'Invalid table header'.
السبب الجذري: محاولة إعادة تعريف مفتاح موجود أو نطاق جدول داخل المستند.
الاسترداد: التحقق من صحة وإعادة تنسيق بنية TOML باستخدام مُنسق TOML من File2File.
تحليل الأمان وناقلات هجوم المحلل اللغوي
يجب أن تحمي محللات TOML نفسها ضد تلوث النماذج الأولي واستنفاد وحدة المعالجة المركزية الناتج عن التداخل المرضي لصفوف الجداول.
ناقلات الهجوم المعروفة
- تلوث النماذج الأولية في محللات TOML للغة JavaScript عن طريق حقن خصائص في Object.prototype.
- هجمات حجب الخدمة عبر إعلانات صفوف الجداول المتداخلة بعمق.
- تخصيص الذاكرة غير المحدود أثناء تحليل المصفوفات الضمنية الهائلة.
أفضل الممارسات الدفاعية:
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- واضح تماماً: يترابق بشكل نظيف ومستنبئ مع جدول تجزئة بدون أي تحويل أنواع مفاجئ.
- دعم أصلي ممتاز للتواريخ والأوقات (طوابع زمنية بتنسيق RFC 3339، التواريخ، الأوقات) دون الحاجة للهروب النصي.
- تم اعتماده كمعيار رسمي لتكوين أدوات البرمجة الحديثة (Rust Cargo.toml، Python pyproject.toml).
القيود الفنية والسلبيات
- شجيرات الكائنات المتداخلة بعمق متعدد المستويات يمكن أن تصبح مطولة مقارنة بـ YAML.
- بنية صفوف الجداول ([[table.array]]) قد تكون غير بديهية للمبتدئين.
- أقل إحكاماً من JSON لتبادل بيانات واجهات برمجة التطبيقات ذات الإنتاجية العالية بين الآلات.
معلومات تقنية طريفة
- تم إنشاء TOML بواسطة توم بريستون-ورنر، الذي شارك أيضاً في تأسيس GitHub وابتكر Gravatar وSemVer (الإصدار الدلالي).
- ملف 'Cargo.toml' في كل مشروع Rust يحدد كافة تبعيات الحزمة وأعلام المترجم بتنسيق TOML.
- على عكس JSON، يدعم TOML التعليقات بشكل أصلي (باستخدام الحرف '#') والنصوص المتعددة الأسطر.
الأسئلة التقنية المتكررة
ما هو الغرض من استخدام TOML؟
تُستخدم تنسيقية TOML لإعدادات البرمجيات، وأبرزها في ملف Cargo.toml بلغة Rust، و pyproject.toml بلغة Python، وإعدادات Go Hugo، وأدوات الحاويات (Containers).
لماذا يُفضل استخدام TOML على YAML في إعدادات البرامج؟
تتجنب TOML أخطاء التحليل الشهيرة في الحالات الحدية لملفات YAML (مثل تحويل كلمة 'NO' غير المحاطة بعلامات تنصيص إلى القيمة المنطقية false)، مع الحفاظ على سهولة القراءة للبشر بفضل دعم التعليقات والجداول الواضحة.
كيف يمكنني تحويل ملفات TOML إلى JSON أو YAML؟
يمكنك تحويل ملفات TOML إلى JSON أو YAML فوراً باستخدام موقع File2File.app مباشرة من متصفح الويب الخاص بك.