TOML
TOML Logo.svg
파일 이름 확장명
.toml
인터넷 미디어 유형등록되지 않음[1]
개발자톰 프레스턴-워너
커뮤니티
초기 릴리즈2013년 2월 23일; 9년(2013-02-23)
최신 릴리즈
v1.0.0
2021년 1월 11일; 14개월(2021-01-11)
형식 유형데이터 교환
오픈 포맷?
웹사이트toml.io Edit this at Wikidata

TOML구성 파일위한 파일 형식이다.'최소'를 지향하는 분명한 의미론 때문에 읽고 쓰기가 쉽도록 의도된 것이며, 사전과 모호하지 않게 지도를 제작할 수 있도록 설계되었다.그것의 사양은 공개 소스이며, 지역사회 공헌을 받는다.TOML은 많은 소프트웨어 프로젝트에서 사용되며,[2][3][4] 많은 프로그래밍 언어로 구현된다.[2]'TOML'이라는 이름은 창작자인 톰 프레스턴-워너(Tom Preston-Werner)를 지칭하는 'Tom's Oblight, Minimal Language'[5]의 약자다.

구문

TOML의 구문은 주로key = "value"쌍들[section names]그리고# comments. TOML의 구문은 의 구문과 다소 유사하다.INI 파일이지만 형식 사양을 포함하고 있는 반면 INI 파일 형식은 많은 경쟁 변형으로 인해 어려움을 겪고 있다.

이 규격에는 지원되는 데이터 유형 목록이 포함되어 있으며,문자열, 정수, 플로트, 부울, Datetime, 배열 및 테이블.

# TOML 문서 입니다.  칭호를 붙이다 = "TOML 예제"  [소유자] 이름을 붙이다 = 톰 프레스턴-워너 도브 = 1979-05-27T07:32:00-08:00 # 1교시 데이트  [database] 서버 = "192.168.1.1" 항구 = [ 8000, 8001, 8002 ] connection_max = 5000 가능한 = 진실의  [servers]    # 들여쓰기(탭 및/또는 공간)는 허용되지만 필요 없음   [1968.20]   ip = "10.0.0.1"   dc = "eqdc10"    [美]베타]   ip = "10.0.0.2"   dc = "eqdc10"  [clients] 자료 = [ ["gamma", "delta"], [1, 2] ]  # 배열을 사용할 때 줄 바꿈이 정상임 호스트들 = [   "alpha",   "오메가" ] 

다른 형식과의 비교

다음 표는 TOML 사양에 그리며 다른 일반적인 구성 형식(INI, JSONYAML)과 비교한다.Besp 참조SciPy 2017에서 소개된 ON과 시뮬레이션 모델링의 파라메트리제이션에 TOML을 사용하는 것에 대한 논의.[citation needed][6]

형식 비교
포맷 형식표준 강하게 입력됨[a] 사람이 읽을 수 있는 주석 허용
제이슨 [7] 아니요.
YAML 아니, 형식 사양[8]
아니, 형식 사양[9]
INI 아니, 여러 방언. 아니요.
  1. ^ 강한 유형은 일반적으로 구성 형식에서[citation needed] 단점으로 간주된다.TOML § 구문 입력의 문제점을 참조하십시오.

비판

첫 출시 이후 TOML은 여러 가지 평론을 받았다.이하와 같은 것은 합의된 내용이 아니다.더 스트레이트YAML 프로젝트는 TOML에서 문제가 되는 다음과 같은 사항을 열거한다.[10]

  • TOML은 장황하다; 건조하지 않고 구문적으로 시끄럽다.
  • TOML의 계층 구조는 구문만으로는 유추하기 어렵다.
  • 과복제:YAML과 마찬가지로 TOML도 기능이 너무 많다.
  • TOML에서 구문은 데이터 유형("동기식 타이핑")을 결정한다.

libconfini 프로젝트는 이후 INI 관점에서 TOML에 대한 보다 광범위한 비판을 발표하여 다음과 같은 사항(다른 사항들 중)을 문제점으로 열거하였다.[11]

  • TOML은 실제로 결정하는 것이 클라이언트 애플리케이션일 때 구성 파일이 데이터 유형(동기식 타이핑)을 결정하도록 한다.어쨌든 일치하지 않는 유형은 무시되거나 (파서에 따라) 예상 유형으로 변환될 것이다.
  • TOML은 인간 친화적인 언어가 일반적으로 없애려고 하는 것을 다시 소개한다: 장황한 구문과 문자열의 따옴표 사용의 필요성
  • TOML 구문은 구성 파일이 대/소문자를 구분하지 않아야 하는 상황(예: FAT32 파일 시스템 또는 HTML 태그를 매핑하는 구성 파일)이 있음에도 불구하고 항상 /소문자를 구분한다.
  • TOML은 대괄호가 테이블 이름용으로 이미 예약되어 있음에도 불구하고 대괄호를 어레이에 사용한다. 더욱이 어레이에 대한 특별한 구문은 언어를 구문 입력으로 되돌린다.
  • TOML 테이블은 한 번에 채워야 한다. 여러 TOML 파일을 병합하는 것은 문제가 있다.
  • TOML은 임의로 날짜 구문을 도입한다.
  • TOML은 빈 문자열을 키로 허용(하지만 억제)한다.
  • TOML의 규칙은 내용에서 추론할 수 없으므로 TOML 파일을 편집하려면 언어에 대한 사전 지식이 필요하다.
  • TOML은 INI와 역호환 가능

참고 항목

참조

  1. ^ 다음과 같이 구성된 TOML에 대한 마임형 제안이 있다.application/toml, 그러나 이것은 IANA의 미디어 타입들 사이에 공식적으로 등록된 적이 없다.
  2. ^ a b "toml-lang/toml". GitHub.
  3. ^ "The Manifest Format - The Cargo Book". doc.rust-lang.org.
  4. ^ Drew DeVault (2021-07-28). "My wish-list for the next YAML". YAML is both universally used, and universally reviled. It has a lot of problems, but it also is so useful in solving specific tasks that it’s hard to replace. Some new kids on the block (such as TOML) have successfully taken over a portion of its market share, but it remains in force in places where those alternatives show their weaknesses.
  5. ^ "toml-lang/toml". January 15, 2021 – via GitHub.
  6. ^ "toml-intro.rst". subversion.american.edu.
  7. ^ "The JavaScript Object Notation (JSON) Data Interchange Format".
  8. ^ "YAML™ Specification Index".
  9. ^ "TOML Specification".
  10. ^ TOML이 왜 그래?
  11. ^ TOML에 대한 INI 비평

외부 링크