Repolode
hadashiA

hadashiA/VYaml

Высокопроизводительная библиотека YAML 1.2 для C# с низким числом аллокаций, поддержкой .NET и Unity и сериализацией на основе генерации исходного кода.

Open source альтернатива:YamlDotNet

Звёзды
481
Форки
41
Открытые issues
17
Последний коммит
позавчера

Что это?

VYaml — реализация YAML 1.2 на чистом C# для .NET и Unity. В библиотеке есть низкоуровневые парсер и эмиттер, которые работают напрямую с байтами UTF-8, а также высокоуровневый сериализатор для преобразования YAML в пользовательские типы C# и обратно. Код сериализации генерируется во время компиляции source generator’ом с помощью атрибута [YamlObject], поэтому сериализатору не нужна рефлексия во время выполнения.

Библиотека поддерживает полиморфизм через объединения, идентифицируемые YAML-тегами, ключом-дискриминатором или ключом-обёрткой. Также поддерживаются переименование ключей, соглашения об именовании, обязательные члены, пропуск значений по умолчанию и перечисления с [Flags]. Отдельный пакет VYaml.JsonSchema генерирует JSON Schema на основе типов C#, чтобы редакторы могли предлагать автодополнение и проверять YAML, написанный вручную. Поддерживаются Native AOT и сборки с trimming.

Библиотека также обрабатывает нестандартный формат сериализованного YAML в Unity, в котором в начале строки документа может встречаться маркер "stripped".

Ключевые возможности

  • 01Парсит и формирует YAML 1.2, используя UTF-8 и сводя число аллокаций к минимуму.
  • 02Сериализует и десериализует данные между YAML и типами C# с помощью генерации исходного кода.
  • 03Поддерживает объединения интерфейсов и абстрактных классов, идентифицируемые тегами, ключами-дискриминаторами или ключами-обёртками.
  • 04Генерирует JSON Schema на основе типов C# для автодополнения и проверки в редакторах.
  • 05Поддерживает специфичные для Unity типы, Native AOT и trimming.

Сценарии использования

  • Загрузка игровых данных или конфигураций в формате YAML в проектах Unity.
  • Чтение и запись YAML-файлов конфигурации в сервисах и инструментах на .NET.
  • Разбор больших YAML-файлов, когда важны скорость и количество аллокаций.
  • Проверка YAML-конфигураций, написанных вручную, в редакторе на основе схемы.

Быстрый старт

  1. 1

    Установите пакет VYaml из NuGet

    dotnet add package VYaml
  2. 2

    В Unity установите NuGetForUnity, затем установите пакет VYaml из окна NuGet

Что важно знать

  • Проект в основном ориентирован на Unity и требует Unity 2021.3 или более поздней версии.
  • Поддержка YAML 1.2 реализована не полностью.
  • Представление в виде дерева узлов пока не поддерживается (оно есть в планах).
  • Перечисления сериализуются только в виде простых строк.

В подборках

Темы

Частые вопросы

Что такое VYaml?
Высокопроизводительная библиотека YAML 1.2 для C# с низким числом аллокаций, поддержкой .NET и Unity и сериализацией на основе генерации исходного кода. VYaml — реализация YAML 1.2 на чистом C# для .NET и Unity. В библиотеке есть низкоуровневые парсер и эмиттер, которые работают напрямую с байтами UTF-8, а также высокоуровневый сериализатор для преобразования YAML в пользовательские типы C# и обратно. Код сериализации генерируется во время компиляции source generator’ом с помощью атрибута [YamlObject], поэтому сериализатору не нужна рефлексия во время выполнения.
VYaml можно использовать бесплатно? Какая у него лицензия?
VYaml распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
VYaml всё ещё поддерживается?
Активно поддерживается. Последний коммит в VYaml — 5 нояб. 2026 г..
Для чего можно использовать VYaml?
Загрузка игровых данных или конфигураций в формате YAML в проектах Unity. Чтение и запись YAML-файлов конфигурации в сервисах и инструментах на .NET. Разбор больших YAML-файлов, когда важны скорость и количество аллокаций. Проверка YAML-конфигураций, написанных вручную, в редакторе на основе схемы.
Как установить VYaml?
Установите пакет VYaml из NuGet: dotnet add package VYaml В Unity установите NuGetForUnity, затем установите пакет VYaml из окна NuGet
Где скачать VYaml?
Исходный код и инструкции по установке — на GitHub: https://github.com/hadashiA/VYaml

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Быстрая библиотека для сериализации и валидации данных в Python: кодирует и декодирует JSON, MessagePack, YAML и TOML с помощью стандартных аннотаций типов.

4,2 тыс.+15 за неделю229PythonBSD-3-ClauseАктивно поддерживаетсяОбновлён 23 часа назад

TypeScript-трансформер, который на этапе сборки превращает обычные типы TypeScript в runtime-валидаторы, JSON-сериализаторы, кодеки protobuf и генераторы случайных данных.

6 тыс.+2 за неделю233TypeScriptMITАктивно поддерживаетсяОбновлён 21 час назад