Una biblioteca rápida de serialización y validación para Python que codifica y decodifica JSON, MessagePack, YAML y TOML mediante anotaciones de tipos estándar.
hadashiA/VYaml
Una biblioteca YAML 1.2 de alto rendimiento y baja asignación para C#, centrada en .NET y Unity, con serialización generada desde el código fuente.
Alternativa open source a:YamlDotNet
- Estrellas
- 481
- Forks
- 41
- Issues abiertos
- 17
- Último commit
- anteayer
¿Qué es?
VYaml es una implementación de YAML 1.2 escrita en C# puro para .NET y Unity. Ofrece un parser y un emisor de bajo nivel que trabajan directamente con bytes UTF-8, además de un serializador de alto nivel que convierte YAML a tipos C# definidos por el usuario y viceversa. El código de serialización se genera en tiempo de compilación mediante un generador de código fuente, a través del atributo [YamlObject], por lo que el serializador no necesita reflexión en tiempo de ejecución.
La biblioteca admite polimorfismo mediante uniones identificadas por etiquetas YAML, una clave discriminadora o una clave envolvente. También permite renombrar claves, definir convenciones de nomenclatura, especificar miembros obligatorios, omitir valores predeterminados y usar enums [Flags]. El paquete independiente VYaml.JsonSchema genera JSON Schema a partir de tipos C# para que los editores puedan ofrecer autocompletado y validación para YAML escrito manualmente. También admite Native AOT y compilaciones con trimming.
Además, puede procesar el formato YAML serializado no estándar de Unity, en el que los archivos de escena pueden incluir el marcador "stripped" en la línea de inicio del documento.
Funciones clave
- 01Analiza y emite YAML 1.2 con un diseño basado en UTF-8 y de baja asignación.
- 02Serializa y deserializa entre YAML y tipos C# mediante generación de código fuente.
- 03Admite uniones de interfaces y clases abstractas identificadas por etiquetas, claves discriminadoras o claves envolventes.
- 04Genera JSON Schema a partir de tipos C# para ofrecer autocompletado y validación en editores.
- 05Ofrece compatibilidad con tipos específicos de Unity y con Native AOT y trimming.
Casos de uso
- Cargar datos de juego o configuración almacenados en YAML en proyectos de Unity.
- Leer y escribir archivos de configuración YAML en servicios o herramientas de .NET.
- Analizar archivos YAML grandes cuando la velocidad y las asignaciones de memoria son importantes.
- Ofrecer validación en editores basada en esquemas para archivos de configuración YAML escritos manualmente.
Inicio rápido
- 1
Instala el paquete VYaml desde NuGet
dotnet add package VYaml - 2
En Unity, instala NuGetForUnity y, después, instala el paquete VYaml desde la ventana de NuGet
Antes de usarlo
- Está enfocado principalmente en Unity y requiere Unity 2021.3 o posterior.
- La compatibilidad con YAML 1.2 es casi completa, pero no total.
- La representación de árbol de nodos aún no es compatible (está en la hoja de ruta).
- Los enums solo se serializan como cadenas simples.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es VYaml?
- Una biblioteca YAML 1.2 de alto rendimiento y baja asignación para C#, centrada en .NET y Unity, con serialización generada desde el código fuente. VYaml es una implementación de YAML 1.2 escrita en C# puro para .NET y Unity. Ofrece un parser y un emisor de bajo nivel que trabajan directamente con bytes UTF-8, además de un serializador de alto nivel que convierte YAML a tipos C# definidos por el usuario y viceversa. El código de serialización se genera en tiempo de compilación mediante un generador de código fuente, a través del atributo [YamlObject], por lo que el serializador no necesita reflexión en tiempo de ejecución.
- ¿VYaml es gratuito? ¿Qué licencia tiene?
- VYaml es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿VYaml sigue mantenido?
- Mantenimiento activo. El último commit de VYaml fue el 5 nov 2026.
- ¿Para qué puedo usar VYaml?
- Cargar datos de juego o configuración almacenados en YAML en proyectos de Unity. Leer y escribir archivos de configuración YAML en servicios o herramientas de .NET. Analizar archivos YAML grandes cuando la velocidad y las asignaciones de memoria son importantes. Ofrecer validación en editores basada en esquemas para archivos de configuración YAML escritos manualmente.
- ¿Cómo se instala VYaml?
- Instala el paquete VYaml desde NuGet: dotnet add package VYaml En Unity, instala NuGetForUnity y, después, instala el paquete VYaml desde la ventana de NuGet
- ¿Dónde consigo VYaml?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/hadashiA/VYaml
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Serializador MessagePack extremadamente rápido para C#, compatible con .NET, .NET Core, Unity y Xamarin, con compresión LZ4 integrada.
Framework CLI de C# sin dependencias ni asignaciones, compatible con AOT y que genera código de análisis y enrutamiento en tiempo de compilación mediante un Source Generator.
Logger de texto y estructurado sin asignaciones para .NET y Unity, basado en Microsoft.Extensions.Logging y con salida UTF8.
Genera modelos con tipado fuerte y serializadores en muchos lenguajes a partir de JSON, JSON Schema, TypeScript y consultas GraphQL.
Transformer de TypeScript que compila tipos puros de TypeScript en validadores en tiempo de ejecución, serializadores JSON, codecs de Protocol Buffers y generadores aleatorios.