
NanoYaml은 YAML 1.2.2의 엄격한 하위 집합을 따르는 설정 형식과 C#용 직렬화·역직렬화 라이브러리다. 제작자는 설정 파일부터 원격 데이터 전송과 저장까지 빠르고 가벼운 형식이 필요한 경우를 대상으로 하며, NanoYaml 파일은 YAML 1.1과 1.2.2에서도 유효하다고 설명한다.
라이브러리는 .NET 8 이상을 대상으로 하는 단일 파일 NanoYaml.cs로도 사용할 수 있다. 제작자가 공개한 벤치마크에서는 SharpYaml보다 처리량이 최대 10배를 넘을 수 있다고 주장한다. 이는 프로젝트가 제시한 비교 결과다.
패키지는 다음 명령으로 설치한다.
dotnet add package NanoYaml
레코드, 클래스, 구조체와 속성 또는 필드를 직렬화하거나 역직렬화할 수 있다. 문자열뿐 아니라 span, reader, writer, 스트림도 지원한다. 스트림과 바이트 span은 BOM 없는 UTF-8을 사용한다.
NanoYaml에는 Strict와 Compatible 프로필이 있다. 직렬화기는 항상 Strict 형식으로 출력한다. 역직렬화기는 문서 앞부분에 %TAG ! nanoyaml:0.1.0:이 있으면 Strict 모드로, 없으면 Compatible 모드로 읽는다. DeserializerParams.ParsingMode로 자동 판별을 덮어쓸 수도 있다.
엄격한 하위 집합이므로 모든 YAML 문서를 바로 역직렬화할 수 있는 것은 아니다. NanoYaml이 비엄격 문서를 거부하면 다른 YAML 파서로 먼저 읽은 뒤 NanoYaml으로 직렬화하라고 안내한다.
- GitHub 저장소
- YAML 1.2.2 명세
- Strict 명세와 Compatible 명세
- 벤치마크
- YamlDotNet 및 StrictYAML과의 기능 비교
- 프로젝트는 StrictYAML과 YamlRecords에서 영감을 받았다고 밝혔다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요