Ana içeriğe geç

TOML Formatı ve Minimalist Konfigürasyon

**TOML (Tom's Obvious Minimal Language)**, asgari düzeyde karmaşıklığa sahip, kolayca okunabilen ve doğrudan hash tablolarına eşlenebilen bir konfigürasyon dosyası formatıdır. Özellikle Rust projesi kargo araçlarında (\\Cargo.toml\\\) standart olarak tercih edilmektedir.

TOML Yapısı

TOML, anahtar-değer çiftleri ve köşeli parantezlerle ayrılmış bölümler (tables) kullanır.

\\`toml

[database]

server = "192.168.1.1"

ports = [ 8000, 8001, 8002 ]

connection_max = 5000

enabled = true

\\`

Neden TOML?

  • **Yorum Desteği:** \\\`#\\\` karakteri ile satır içi yorumlar eklenebilir.
  • **Net Tarih ve Saat Tipleri:** TOML, RFC 3339 standartlarında tarih-saat verilerini doğrudan yerleşik tip olarak tanır.
  • **Kolay Hiyerarşi:** Alt tablolar \\\`[parent.child]\\\` şeklinde tanımlanarak okunabilirliği bozmadan derin veri yapıları kurulabilir.
  • TOML, XML'in hantallığına ve YAML'ın girintileme karmaşasına karşı güçlü ve kararlı bir alternatif sunar.

    Tablo ve Dizi Yapıları

    TOML'da [server] başlığı bir tabloyu, [[products]] ise tablo dizisini tanımlar. Noktalı anahtarlar kısa tanımlar için kullanışlıdır; ancak aynı tabloyu hem başlık hem noktalı anahtarla çelişkili biçimde tanımlamamak gerekir. Anahtarların hangi tabloya ait olduğunu dosyanın tamamında izlemek önemlidir.

    Tiplerin Korunması

    TOML tam sayı, ondalık sayı, boolean ve tarih-saat tiplerini açıkça ayırır. Bir yapılandırmayı JSON'a aktarırken tarih değerlerinin çoğunlukla metne dönüştüğünü, özel sayısal gösterimlerin normalize edildiğini kontrol edin. Gizli anahtarları örnek dosyalara koymayın; ortam değişkeni veya secret yönetimi kullanın.

    Doğrulama İş Akışı

    Dosyayı parse ettikten sonra beklenen üst düzey tabloları, zorunlu anahtarları ve veri tiplerini kontrol edin. Ardından üretim ortamının kabul ettiği şemayla karşılaştırın. Sözdiziminin geçerli olması, yapılandırmanın uygulama açısından doğru olduğu anlamına gelmez.