Uma biblioteca rápida de serialização e validação para Python que codifica e decodifica JSON, MessagePack, YAML e TOML usando anotações de tipo padrão.
hadashiA/VYaml
Uma biblioteca YAML 1.2 de alto desempenho e baixa alocação para C# com foco em .NET e Unity, com serialização gerada pelo source generator.
Alternativa open source a:YamlDotNet
- Estrelas
- 482
- Forks
- 41
- Issues abertas
- 17
- Último commit
- há 4 dias
O que é?
VYaml é uma implementação de YAML 1.2 escrita em C# puro para .NET e Unity. Ela oferece um parser e um emitter de baixo nível que trabalham diretamente com bytes UTF-8, além de um serializer de alto nível que converte YAML em tipos C# definidos pelo usuário e vice-versa. O código de serialização é gerado em tempo de compilação por um source generator usando o atributo [YamlObject], evitando reflexão em runtime.
A biblioteca oferece suporte a polimorfismo por meio de unions identificadas por tags YAML, por uma chave discriminadora ou por uma chave de encapsulamento. Também oferece suporte a renomeação de chaves, convenções de nomenclatura, membros obrigatórios, omissão de valores padrão e enums [Flags]. O pacote separado VYaml.JsonSchema gera JSON Schema a partir de tipos C# para que editores ofereçam autocomplete e validação de YAML escrito manualmente. Builds Native AOT e com trimming também são compatíveis.
A biblioteca também processa o formato de YAML serializado não padrão do Unity, em que arquivos de cena podem conter o marcador "stripped" na linha de início do documento.
Recursos principais
- 01Faz o parsing e a emissão de YAML 1.2 com um design baseado em UTF-8 e de baixa alocação.
- 02Serializa e desserializa entre YAML e tipos C# por meio de geração de código.
- 03Oferece suporte a unions de interfaces e classes abstratas identificadas por tags, chaves discriminadoras ou chaves de encapsulamento.
- 04Gera JSON Schema a partir de tipos C# para autocomplete e validação em editores.
- 05Oferece suporte a tipos específicos do Unity e compatibilidade com Native AOT e trimming.
Casos de uso
- Carregar dados de jogo ou de configuração armazenados em YAML em projetos Unity.
- Ler e gravar arquivos de configuração YAML em serviços ou ferramentas .NET.
- Fazer o parsing de arquivos YAML grandes quando alocação e velocidade são importantes.
- Oferecer validação em editores baseada em schema para arquivos de configuração YAML escritos manualmente.
Início rápido
- 1
Instale o pacote VYaml pelo NuGet
dotnet add package VYaml - 2
No Unity, instale o NuGetForUnity e, em seguida, instale o pacote VYaml pela janela do NuGet
Antes de usar
- O foco principal é o Unity, e é necessário usar o Unity 2021.3 ou posterior.
- O suporte a YAML 1.2 é quase completo, mas não total.
- A representação em árvore de nós ainda não é compatível (está no roadmap).
- Enums são serializados apenas como representações simples em string.
Em coleções
Tópicos
Perguntas frequentes
- O que é VYaml?
- Uma biblioteca YAML 1.2 de alto desempenho e baixa alocação para C# com foco em .NET e Unity, com serialização gerada pelo source generator. VYaml é uma implementação de YAML 1.2 escrita em C# puro para .NET e Unity. Ela oferece um parser e um emitter de baixo nível que trabalham diretamente com bytes UTF-8, além de um serializer de alto nível que converte YAML em tipos C# definidos pelo usuário e vice-versa. O código de serialização é gerado em tempo de compilação por um source generator usando o atributo [YamlObject], evitando reflexão em runtime.
- VYaml é gratuito? Qual é a licença?
- VYaml é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- VYaml ainda é mantido?
- Manutenção ativa. O último commit de VYaml foi em 5 de nov. de 2026.
- Para que posso usar VYaml?
- Carregar dados de jogo ou de configuração armazenados em YAML em projetos Unity. Ler e gravar arquivos de configuração YAML em serviços ou ferramentas .NET. Fazer o parsing de arquivos YAML grandes quando alocação e velocidade são importantes. Oferecer validação em editores baseada em schema para arquivos de configuração YAML escritos manualmente.
- Como instalar VYaml?
- Instale o pacote VYaml pelo NuGet: dotnet add package VYaml No Unity, instale o NuGetForUnity e, em seguida, instale o pacote VYaml pela janela do NuGet
- Onde consigo VYaml?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/hadashiA/VYaml
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Serializador MessagePack extremamente rápido para C#, compatível com .NET, .NET Core, Unity e Xamarin, com compressão LZ4 integrada.
Um framework C# para CLI sem dependências e sem alocações, seguro para AOT, que gera código de parsing e roteamento em tempo de compilação por meio de um Source Generator.
Logger de texto e estruturado com zero alocações para .NET e Unity, baseado em Microsoft.Extensions.Logging e com saída UTF8.
Gera modelos tipados e serializadores em várias linguagens a partir de JSON, JSON Schema, TypeScript e consultas GraphQL.
Transformer de TypeScript que compila tipos puros em validadores de runtime, serializadores JSON, codecs de Protocol Buffer e geradores de dados aleatórios.