TOML

TOML
Rozszerzenia pliku

.toml

Typ MIME

Nie zarejestrowany

Data opracowania

23 II 2013

Ostatnia wersja

v1.0.0 (11 stycznia, 2021)

Otwarty format?

tak

Strona internetowa

TOML – format plików konfiguracyjnych. Stworzony został z myślą o łatwości czytania i pisania dzięki oczywistej semantyce, która stawia sobie za cel „minimalizm” i ma na celu jednoznaczne mapowanie do słownika. Jego specyfikacja jest typu open source i jest wspierana przez wkład od społeczności. TOML jest używany w wielu projektach oprogramowania i jest zaimplementowany w wielu językach programowania. Nazwa „TOML” to skrót od „Tom's Obvious, Minimal Language”, odnoszący się do jego twórcy, Toma Prestona-Wernera.

Składnia

Składnia TOML składa się głównie z par klucz = "wartość", [nazwa sekcji] i # komentarz. Składnia TOML nieco przypomina składnię plików INI, ale w przeciwieństwie do nich zawiera formalną specyfikację, podczas gdy format pliku INI posiada wiele konkurencyjnych wariantów.

Jego specyfikacja zawiera listę obsługiwanych typów danych: String, Integer, Float, Boolean, Datetime, Array i Table.

Przykład

# To jest przykładowy dokument TOML
title = "TOML Example"

[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # Data

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

[servers]

 # Wcięcia (tab lub spacje) są dozwolone ale nie wymagane
 [servers.alpha]
 ip = "10.0.0.1"
 dc = "eqdc10"

 [servers.beta]
 ip = "10.0.0.2"
 dc = "eqdc10"

[clients]
data = [ ["gamma", "delta"], [1, 2] ]

# Wewnątrz tablic można łamać linie
hosts = [
 "alpha",
 "omega"
]

Porównanie z innymi formatami

Poniższa tabela opiera się na specyfikacji TOML i jest porównaniem z innymi popularnymi formatami plików konfiguracyjnych (INI, JSON i YAML). Na konferencji SciPy 2017 został zaprezentowany język BespON jako format pliku konfiguracyjnego odpowiedniego dla modelowania i symulacji. Pojawiło się tam także omówienie możliwości wykorzystania do tego celu języka TOML.

Porównanie formatów
Format Formalny standard Elastyczny standard Silnie typowany Łatwa implementacja   Czytelny dla człowieka Pozwala na komentarze
JSONTakNieTakTakTakNie
YAMLTakNieTakTakTakTak
TOMLTakNieTakTakTakTak
ININieTakNieTakTakTak

Krytyka

Od pierwszego wydania TOML spotkał się z kilkoma krytykami. Projekt StrictYAML wymienia następujące punkty jako problematyczne w TOML:

Projekt libconfini opublikował od tego czasu bardziej obszerną krytykę TOML z prowadzoną perspektywy INI, wymieniając (między innymi) następujące punkty jako problematyczne:

Zobacz też

Przypisy

  1. ↑ Jest proposal dla TOML zawarty w application/toml, ale nigdy nie został oficjalnie zarejestrowany IANA's Media Types.
  2. ↑ Home · toml-lang/toml Wiki · GitHub [online], github.com [dostęp 2024-04-26] (ang.).
  3. ↑ The Manifest Format - The Cargo Book [online], rust-lang.org [dostęp 2024-04-26] (ang.).
  4. ↑ Home · toml-lang/toml Wiki · GitHub [online], github.com [dostęp 2024-04-26] (ang.).
  5. ↑ GitHub - toml-lang/toml: Tom's Obvious, Minimal Language [online], github.com [dostęp 2024-04-26] (ang.).
  6. ↑ proceedings/scipy2017/geoffrey_poore.html [online], scipy.org [dostęp 2024-04-26].
  7. ↑ toml-intro.rst [online], american.edu [dostęp 2024-04-26] (ang.).
  8. ↑ What is wrong with TOML?
  9. ↑ An INI critique of TOML

Linki zewnętrzne