ما هو تنسيق TOML؟

TOML (Tom's Obvious, Minimal Language) هو تنسيق ملف إعدادات صُمم ليكون سهل القراءة والكتابة بفضل معانيه الواضحة. أنشأه Tom Preston‑Werner (المؤسس المشارك لـ GitHub)، ويُحوِّل TOML بشكل غير غامض إلى جدول تجزئة ويُستَخدم عادةً في ملفات الإعدادات لمشروعات Rust (Cargo.toml)، أدوات Python، والعديد من التطبيقات الأخرى. يستخدم بناءً واضحًا ومُختصرًا مع أقسام تُحدَّد بأقواس مربعة وأزواج مفتاح‑قيمة مشابهة لملفات INI لكن مع أنواع بيانات أغنى تشمل المصفوفات، الجداول المتداخلة، التواريخ، ومعالجة الأنواع بشكل صحيح.

وصف الأداة

يحوِّل هذا المحوِّل البيانات بين صيغتي TOML و TOON باتجاهين. حوِّل ملفات إعدادات TOML إلى صيغة TOON الموفَّرة للرموز لتعامل LLM، أو عاود تحويل بيانات TOON إلى TOML قياسي. تستخدم الأداة المكتبتين الرسميتين @toon-format/toon و smol-toml لضمان تحويل دقيق. هذا مفيد بشكل خاص عند العمل مع LLMs في مهام إدارة الإعدادات، سيناريوهات البنية التحتية ككود (Infrastructure‑as‑Code)، أو أي حالة تحتاج إلى معالجة بيانات TOML بكفاءة ضمن قيود عدد الرموز.

أمثلة

إدخال TOML:

[database]
server = "192.168.1.1"
ports = [8000, 8001, 8002]
enabled = true

[[servers]]
name = "alpha"
ip = "10.0.0.1"
role = "frontend"

[[servers]]
name = "beta"
ip = "10.0.0.2"
role = "backend"

إخراج TOON:

database:
  server: 192.168.1.1
  ports: [8000,8001,8002]
  enabled: true
servers[2]{name,ip,role}:
  alpha,10.0.0.1,frontend
  beta,10.0.0.2,backend

مثال ملف إعدادات:

إعدادات TOML بهياكل متداخلة:

[app]
name = "MyApp"
version = "1.0.0"

[app.settings]
debug = false
timeout = 30

[[app.features]]
id = 1
name = "feature-a"
enabled = true

[[app.features]]
id = 2
name = "feature-b"
enabled = false

يصبح TOON مضغوطًا:

app:
  name: MyApp
  version: 1.0.0
  settings:
    debug: false
    timeout: 30
  features[2]{id,name,enabled}:
    1,feature-a,true
    2,feature-b,false

الميزات

  • تحويل باتجاهين بين صيغتي TOML و TOON مع الحفاظ على الدقة الكاملة
  • تقليل عدد الرموز لمعالجة LLM (تقليل 30‑50٪ من الرموز للتهيئات المهيكلة)
  • الحفاظ على دلالات TOML بما فيها الجداول، مصفوفات الجداول، والهياكل المتداخلة
  • تحويل آمن للأنواع يحافظ على الأعداد الصحيحة، الفاصلات العشرية، القيم المنطقية، السلاسل، والمصفوفات
  • تحويل فوري مع نتائج فورية أثناء الكتابة

حالات الاستخدام

  1. تحليل الإعدادات باستخدام LLMs – حوِّل ملفات إعدادات TOML إلى صيغة TOON قبل إرسالها إلى LLMs للتحليل أو الاقتراحات أو توليد الوثائق مع تقليل تكلفة الرموز.
  2. معالجة البنية التحتية ككود – حوِّل إعدادات Terraform، Cargo، أو أي إعدادات مبنية على TOML لمراجعات وتعديلات بنية تحتية مدعومة بـ LLM.
  3. إدارة إعدادات CI/CD – عالج ملفات إعدادات البناء عبر LLMs للتحسين أو الترحيل مع تقليل تكاليف API.
  4. ترحيل الإعدادات – حوِّل إعدادات التطبيقات بين الصيغ عند التكامل مع أدوات إدارة إعدادات مدعومة بـ LLM.
  5. توليد الوثائق – حضّر إعدادات TOML للكتاب الوثائقيين المدعومين بـ LLM باستخدام ترميز موفر للرموز.

تفاصيل التحويل

يتعامل المحوِّل مع ميزات TOML الخاصة بشكل مناسب:

  • الجداول ([section]) تُحوَّل إلى كائنات متداخلة في TOON مع المسافات البادئة.
  • مصفوفات الجداول ([[array]]) تُحوَّل إلى صيغة TOON الجدولية عندما تكون موحدة.
  • الجداول المضمنة ({key = value}) تحافظ على البنية عبر التداخل الصحيح.
  • أنواع البيانات (سلاسل، أعداد صحيحة، أعداد فاصلة، قيم منطقية، تواريخ) تُحافظ على سلامة النوع.
  • المصفوفات تُحوَّل إلى تدوين مصفوفة TOON مع تنسيق مناسب.
  • المفاتيح المنقطة (a.b.c = value) تُوسَّع إلى بنية متداخلة.

كفاءة الرموز

تحويل TOML إلى TOON قبل معالجة LLM يوفِّر وفورات ملحوظة:

مقارنة عدد الرموز (50 إعداد خادم):

  • TOML (منسق): ≈ 12,500 رمز
  • TOON: ≈ 7,200 رمز (تقليل 42٪)
  • فائدة TOON: مزيد من البيانات داخل نافذة السياق، انخفاض تكاليف API

تكون الوفورات أكبر عندما تكون:

  • هياكل الجداول متكررة (مثل [[servers]]، [[databases]])
  • مصفوفات كائنات إعدادات متشابهة
  • ملفات إعدادات كبيرة بأقسام موحدة
  • إعدادات متعددة بيئات ذات بنية مشابهة

توافق الصيغ

ميزات TOML المدعومة:

  • أزواج مفتاح‑قيمة أساسية
  • الجداول والجداول المتداخلة
  • مصفوفات الجداول
  • الجداول المضمنة والمصفوفات
  • جميع أنواع بيانات TOML (سلسلة، عدد صحيح، عدد فاصلة، منطقية، تاريخ‑وقت، مصفوفة، جدول)
  • التعليقات (محفوظة في البنية، لكن غير موجودة في تمثيل TOON)

دقة التحويل ذهابًا وإيابًا: تحويل TOML → TOON → TOML يحافظ على سلامة البيانات، رغم أن التنسيق والتعليقات قد تُعَدَّل. المعنى الدلالي وجميع القيم تُحافظ عليها.

متى تستخدم هذا المحوِّل

استخدم TOML → TOON عندما:

  • ترسل ملفات إعدادات إلى LLMs للتحليل أو التعديل
  • تعالج إعدادات TOML كبيرة ضمن حدود الرموز
  • تُجري معالجة دفعة لعدة ملفات إعداد عبر واجهات LLM
  • تولِّد وثائق من إعدادات TOML

استخدم TOON → TOML عندما:

  • تحوِّل إعدادات مولَّدة بواسطة LLM إلى الصيغة القياسية
  • تُدمج مخرجات LLM في سلاسل أدوات مبنية على TOML
  • تُنشئ ملفات إعداد قابلة للتحرير البشري من بيانات مضغوطة
  • تُحضِّر مخرجات لتطبيقات أصلية تدعم TOML