TOML konfiguráció (.toml)

TOML Szabvány

A Tom's Obvious Minimal Language (TOML) egy egyértelmű, emberközpontú konfigurációs formátum, amelyet a GitHub társalapítója, Tom Preston-Werner hozott létre, és amelyet széles körben alkalmaznak a modern programozási ökoszisztémákban, beleértve a Rustot (Cargo) és a Pythont (pyproject.toml).

TOML konvertálása erre: JSON

Ingyenes, böngészőn belüli TOML - JSON konvertáló. Konvertáljon fájlokat azonnal az eszközén.

Vizsgálat és metaadatok

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) TOML fájlokat:

Válasszon ki vagy ejtsen ide fájlokat

100%-ban magánjellegű, böngészőn belüli konvertálás - a fájlok soha nem hagyják el az eszközét

vagy beillesztés Ctrl+V
Nulla hálózati adatátviteli adatvédelmi garancia: 0 bájt lett feltöltve külső szerverekre. Minden feldolgozás helyben, az Ön böngészőjének homokozójában történt.

Bájt-szintű fejléc aláírás (Magic Bytes)

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) TOML fájlokat:

HEX ALÁÍRÁS (ELTOLÁS 0):

5B ... 5D

ASCII REPREZENTÁCIÓ: [...]

Szabványosítás: TOML v1.0.0 Specification

Műszaki specifikációk

Konténer architektúraHuman-readable configuration file mapping unequivocally to a hash table, structured with [tables] and key = value pairs
TömörítésUncompressed text stream
BájtsorrendUTF-8 text stream
SzínterekN/A (Configuration File)
Csatornák és struktúraTables, arrays of tables, inline tables, strings, integers, floats, booleans, and RFC 3339 datetimes
Max. méretekUnbounded text length
ÁtlátszóságNone
Streaming és progresszívSequential line-by-line configuration parsing

Műszaki összehasonlító mátrix: TOML vs Versenytársak

Technikai attribútumTOML (Jelenlegi)YAMLJSONINI
Kétértelműségi kockázatNulla (szigorúan egyértelmű specifikáció)Magas (YAML 'Norvégia-probléma' logikai hibák)Nulla (szigorú adattípusok)Mérsékelt (nincs hivatalos szabvány)
Natív dátum-idő típusokNatív RFC 3339 dátum és idő támogatásImplicit karakterlánc / dátum elemzésNincs (csak karakterláncok)Nincs (csak karakterláncok)
Megjegyzések támogatásaNatív (# megjegyzések)Natív (# megjegyzések)Megjegyzések nem engedélyezettekNatív (; és # megjegyzések)
Elsődleges ökoszisztémaRust (Cargo), Python (PEP 518), GoKubernetes, Ansible, CI/CD folyamatokWebes API-k, böngészőkommunikációÖrökölt Windows, Git config

Gyakori sérülési módok és hexadecimális helyreállítási útmutató

Elemzési hiba: 'Duplicate key in table' vagy 'Invalid table header'.

Kiváltó ok: Meglévő kulcs vagy táblanévtér újradefiniálásának kísérlete a dokumentumon belül.

Helyreállítás: Érvényesítse és formázza újra a TOML szintaxist a File2File TOML Formatter segítségével.

Biztonsági elemzés és elemző (parser) támadási vektorok

A TOML-elemzőknek védekezniük kell a prototípus-szennyezés és a kóros táblatömb-beágyazás miatti CPU-kimerülés ellen.

Ismert támadási vektorok

  • Prototípus-szennyezés a JavaScript TOML-elemzőkben, amelyek tulajdonságokat fecskendeznek be az Object.prototype-ba.
  • Szolgáltatásmegtagadás (DoS) a mélyen beágyazott táblatömb-deklarációk révén.
  • Korlátlan memóriafoglalás hatalmas beágyazott tömbök elemzése közben.

Védekező Legjobb Gyakorlatok:

Történeti háttér és mérföldkövek

2021A TOML v1.0.0 hivatalos kiadása, amely befagyasztja az alapvető szintaxisszabványt.
2018A Python szabványosítja a 'pyproject.toml' fájlt (PEP 518) modern build-konfigurációs szabványként.
2013Tom Preston-Werner közzéteszi a TOML-t, hogy tiszta konfigurációs formátumot biztosítson a YAML összetessége nélkül.

Főbb előnyök

  • Teljesen egyértelmű: tisztán és kiszámíthatóan képezhető le hashtáblára, meglepő típuskényszerítés nélkül.
  • Első osztályú natív dátum- és időtámogatás (RFC 3339 időbélyegek, dátumok, idők) karakterlánc-escapelés nélkül.
  • A modern nyelvi eszközök hivatalos szabványos konfigurációs formátumaként elfogadva (Rust Cargo.toml, Python pyproject.toml).

Technikai korlátok és hátrányok

  • A mélyen beágyazott, többszintű objektumfák bőbeszédűvé válhatnak a YAML-hez képest.
  • A táblatömbök szintaxisa ([[table.array]]) kezdők számára nem mindig intuitív.
  • Kevésbé kompakt, mint a JSON a nagy áteresztőképességű gép-gép közötti API adhoc adatcseréhez.

Érdekes technikai tudnivalók

  • A TOML-t Tom Preston-Werner készítette, aki szintén társalapítója volt a GitHubnak, valamint megalkotta a Gravatart és a SemVer-t (Szemantikus Verziószámozás).
  • Minden Rust-projekt 'Cargo.toml' fájlja TOML formátumban határozza meg az összes csomagfüggőséget és fordítási paramétert.
  • A JSON-nel ellentétben a TOML natívan támogatja a megjegyzéseket (a '#' karakter használatával) és a többsoros karakterláncokat.

Gyakran Ismételt Műszaki Kérdések

Mire használatos a TOML?

A TOML-t szoftverkonfigurációhoz használják, leginkább a Rust Cargo.toml fájljában, a Python pyproject.toml fájljában, a Go Hugo konfigurációiban és a tárolóeszközökben.

Miért részesítik előnyben a TOML-t a YAML-lel szemben a konfigurációhoz?

A TOML elkerüli a YAML hírhedt peremfeltételes elemzési hibáit (például amikor az idézőjel nélküli 'NO' hamis logikai értékké változik), miközben emberbarát marad a megjegyzésekkel és a tiszta táblázatokkal.

Hogyan konvertálhatom a TOML-t JSON-be vagy YAML-be?

A TOML fájlokat azonnal konvertálhatod JSON-be vagy YAML-be a File2File.app használatával közvetlenül a webböngésződben.