TOML - TOML
Přípona názvu souboru | .toml |
---|---|
Typ internetového média | Neregistrovaný[1] |
Vyvinul | Tom Preston-Werner Společenství |
První vydání | 23. února 2013 |
Poslední vydání | v1.0.0-rc.1 (3. dubna 2020 ) |
Typ formátu | Výměna dat |
Otevřený formát ? | Ano |
webová stránka | toml![]() |
TOML je formát souboru pro konfigurační soubory. Má být snadno čitelný a psaný díky zjevné sémantice, která má být „minimální“, a je navržen tak, aby jednoznačně mapoval slovník. Jeho specifikace je open-source a přijímá příspěvky komunity. TOML se používá v řadě softwarových projektů,[2][3][není nutný primární zdroj ] a je implementován v mnoha programovacích jazycích.[4] Název „TOML“ je zkratka pro „Tom's Obvious, Minimal Language“[5] s odkazem na jeho tvůrce, Tom Preston-Werner.
Syntax
Syntaxe TOML se primárně skládá z key = "hodnota"
páry, [názvy sekcí]
, a # komentáře
. Syntaxe TOML se poněkud podobá syntaxi.INI soubory, ale obsahuje formální specifikaci, zatímco formát souboru INI trpí mnoha konkurenčními variantami.
Jeho specifikace obsahuje seznam podporovaných datových typů: String, Integer, Float, Boolean, Datetime, Array a Table.
Příklad
# Toto je dokument TOML.titul = „Příklad TOML“[majitel]název = „Tom Preston-Werner“dob = 1979-05-27T07: 32: 00-08: 00 # Datum první třídy[databáze]serveru = "192.168.1.1"porty = [ 8000, 8001, 8002 ]připojení_max = 5000povoleno = skutečný[servery] # Odsazení (karty nebo mezery) je povoleno, ale není požadováno [server.alpha] ip = "10.0.0.1" DC = „eqdc10“ [servery.beta] ip = "10.0.0.2" DC = „eqdc10“[klienti]data = [["gama", "delta"], [1, 2]]# Konce řádků jsou v pořádku, když jsou uvnitř polehostitelé = [ „alfa“, "omega"]
Srovnání s jinými formáty
Následující tabulka čerpá z Specifikace TOML provést srovnání s jinými populárními formáty konfigurace (INI, JSON, a YAML ). Viz také BespON jak je představeno na SciPy 2017[6], jakož i diskuse o použití TOML pro parametrizaci simulačního modelování.[7]
Formát | Formální standard | Flexibilní standard | Silně napsaný | Snadná implementace[Citace je zapotřebí ] | Člověk čitelný | Umožňuje komentáře |
---|---|---|---|---|---|---|
JSON | Ano | Ne | Ano | Ano | Ano | Ne |
YAML | Ano | Ne | Ano | Ne[8] | Ano | Ano |
TOML | Ano | Ne | Ano | Ano | Ano | Ano |
INI | Ne | Ano | Ne | Ano | Ano | Ano |
Kritika
Od svého prvního vydání získal TOML několik kritik. The StrictYAML projekt uvádí v TOML jako problematické následující body:[9]
- TOML je podrobný, není SUCHÝ a je syntakticky hlučný
- Hierarchie TOML je obtížné odvodit ze samotné syntaxe
- Overcomplication: Like YAML, TOML has too many features
- V TOML určuje syntaxe datové typy („psaní syntaxe“)
The libconfini projekt od té doby vydal rozsáhlejší kritiku TOML z INI perspektivní,[10] uvedení následujících bodů (mimo jiné) jako problematických:
- TOML umožňuje konfiguračnímu souboru rozhodnout o datových typech (psaní syntaxe), kdy de facto rozhoduje klientská aplikace a jakýkoli typ neshody bude stejně ignorován nebo převeden na očekávaný typ (v závislosti na analyzátoru)
- TOML znovu zavádí to, čeho se jazyky běžně snaží zbavit: podrobná syntaxe a nutnost použití uvozovek pro řetězce
- Syntaxe TOML vždy rozlišuje velká a malá písmena, a to navzdory skutečnosti, že existují situace, kdy konfigurační soubory musí nerozlišujte velká a malá písmena (například konfigurační soubory mapující souborový systém FAT32 nebo značky HTML)
- TOML používá hranatá závorka pro pole, ačkoli hranaté závorky jsou již vyhrazeny pro názvy tabulek; navíc jakákoli speciální syntaxe pro pole vrací jazyk zpět k psaní syntaxe
- Tabulka TOML musí být naplněna v jednom kroku, takže sloučení více souborů TOML je problematické
- TOML libovolně zavádí syntaxi pro data
- TOML umožňuje (ale odrazuje) prázdný řetězec jako klíč
- Pravidla TOML nelze odvodit z obsahu, proto úprava souboru TOML vyžaduje předchozí znalost jazyka
- TOML je zpětně nekompatibilní s INI
Viz také
Reference
- ^ Existuje návrh typu mime pro TOML, který spočívá v
aplikace / toml
, ale toto nikdy nebylo oficiálně registrováno mezi Typy médií IANA. - ^ „Projects using TOML - TOML Wiki“.
- ^ „Manifest Format - The Cargo Book“.
- ^ "Implementace - TOML Wiki".
- ^ „GitHub - toml-lang / toml: Tom's Obvious, Minimal Language“.
- ^ https://conference.scipy.org/proceedings/scipy2017/geoffrey_poore.html
- ^ https://subversion.american.edu/aisaac/notes/toml-intro.html
- ^ https://news.ycombinator.com/item?id=7938180
- ^ Co se děje s TOML?
- ^ INI kritika TOML
externí odkazy
![]() | Tento software článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |