Быстрая библиотека для сериализации и валидации данных в Python: кодирует и декодирует JSON, MessagePack, YAML и TOML с помощью стандартных аннотаций типов.
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
Установите пакет VYaml из NuGet
dotnet add package VYaml - 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 обновляется ежедневно.
Похожие проекты
Высокопроизводительный сериализатор MessagePack для C# с поддержкой .NET, .NET Core, Unity и Xamarin и встроенным сжатием LZ4.
C#-фреймворк для CLI без зависимостей и аллокаций, совместимый с AOT и генерирующий код парсинга и маршрутизации во время компиляции.
Логгер с нулевым числом аллокаций для текста и структурированных данных в .NET и Unity, построенный на Microsoft.Extensions.Logging и выводящий данные в UTF8.
Создаёт типизированные модели и сериализаторы на разных языках по JSON, JSON Schema, TypeScript и GraphQL-запросам.
TypeScript-трансформер, который на этапе сборки превращает обычные типы TypeScript в runtime-валидаторы, JSON-сериализаторы, кодеки protobuf и генераторы случайных данных.