تخطي إلى المحتوى

لا يمكن تحويل هذا النوع من الملفات في المتصفح.

┐─ تحليل الملف ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
المطور : Tom Preston-Werner
الفئة : بيانات
نوع MIME : application/toml
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

ما هو ملف TOML؟

TOML (Tom’s Obvious, Minimal Language — لغة تُوم الواضحة والبسيطة) هي صيغة ملف تكوين أنشأها Tom Preston-Werner، المؤسس المشارك لـ GitHub، عام 2013. صُمِّمت لتكون بديلاً أوضح من YAML وأبسط من JSON في سياق ملفات التكوين.

المزية الرئيسية لـ TOML أنها تُعيَّن بشكل لا غموض فيه إلى جدول هاش (قاموس)، مما يجعل كل قيمة محددة الموضع والنوع. أنواع البيانات المدعومة: نص، عدد صحيح، عشري، منطقي، تاريخ/وقت، مصفوفة، وجدول.

اعتُمدت TOML كصيغة تكوين رسمية لعدة بيئات بارزة: Cargo.toml لإدارة حزم Rust، وpyproject.toml لمشاريع Python، مما أعطاها قاعدة مستخدمين واسعة في مجتمع المطورين.

كيفية فتح ملفات TOML

  • VS Code مع إضافة “Even Better TOML” — تلوين وتحقق من الصحة
  • Zed Editor — دعم TOML مدمج
  • IntelliJ IDEA / CLion (ويندوز، ماك، لينكس) — دعم Rust وCargo كامل
  • أي محرر نصوص — ملفات TOML نص عادي تقرؤها بـ Notepad أو Vim
  • Python: import tomllib (مدمج منذ Python 3.11)
  • Rust: مكتبة toml عبر Cargo

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

الخاصيةالقيمة
الإصدار الحاليTOML v1.0.0 (2021)
الترميزUTF-8 حصراً
أنواع البياناتنص، عدد، عشري، منطقي، تاريخ، مصفوفة، جدول
التعليقاتيبدأ بـ #
نوع MIMEapplication/toml
حساسية الحالةالأسماء حساسة لحالة الأحرف
الترتيبالجداول غير مرتبة

الاستخدامات الشائعة

  • Cargo.toml لمشاريع Rust: تعريف الاسم والإصدار والتبعيات والميزات لكل مشروع Rust
  • pyproject.toml لمشاريع Python: تكوين أدوات البناء كـ Poetry وHatch وFlit بدلاً من setup.py
  • Hugo للمواقع الثابتة: ملف config.toml الرئيسي لإعدادات موقع Hugo
  • إعدادات Cargo الشاملة: إدارة المرايا والسجلات وإعدادات البناء
  • Gitea وForge: كثير من تطبيقات Go تستخدم TOML للإعدادات

TOML مقابل YAML مقابل JSON

الميزةTOMLYAMLJSON
سهولة القراءة✅ ممتازةجيدةمتوسطة
التعليقات
الغموض✅ لا غموضكثيرلا غموض
التداخلمحدود✅ عميق✅ عميق
شائع فيRust، PythonDevOps، KubernetesAPIs

مثال عملي

# Cargo.toml لمشروع Rust
[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
description = "تطبيق نموذجي"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

[dev-dependencies]
assert_cmd = "2.0"

[[bin]]
name = "my-app"
path = "src/main.rs"