標準の型アノテーションを使ってJSON、MessagePack、YAML、TOMLをエンコード・デコードする、高速なPythonシリアライズ・バリデーションライブラリ。
- スター
- 481
- フォーク
- 41
- 未解決の Issue
- 17
- 最終コミット
- 一昨日
これは何?
VYamlは、.NETとUnity向けにpure C#で実装されたYAML 1.2ライブラリです。UTF-8バイト列を直接扱う低レベルのパーサーとエミッターに加え、YAMLとユーザー定義のC#型を相互変換する高レベルのシリアライザーを備えています。シリアライズコードは、[YamlObject]属性を通じてソースジェネレーターがコンパイル時に生成するため、実行時リフレクションを使わずに済みます。
YAMLタグ、識別子キー、ラップキーで識別するユニオンによるポリモーフィズムに対応しています。また、キーのリネーム、命名規則、必須メンバー、デフォルト値の省略、[Flags] enumもサポートします。別パッケージのVYaml.JsonSchemaはC#型からJSON Schemaを生成し、手書きのYAMLに対するエディターの補完や検証を可能にします。Native AOTとトリミングされたビルドにも対応しています。
また、シーンファイルのドキュメント開始行に「stripped」マーカーが含まれることがある、Unity独自の非標準シリアライズYAML形式も扱えます。
主な機能
- 01低アロケーションのUTF-8ベース設計でYAML 1.2を解析・出力します。
- 02ソース生成を通じて、YAMLとC#型の間でシリアライズ・デシリアライズします。
- 03タグ、識別子キー、ラップキーで識別するインターフェースや抽象クラスのユニオンをサポートします。
- 04C#型からJSON Schemaを生成し、エディターの補完や検証に利用できます。
- 05Unity固有の型に対応し、Native AOTやトリミングにも対応しています。
ユースケース
- UnityプロジェクトでYAML形式のゲームデータや設定データを読み込む。
- .NETのサービスやツールでYAML設定ファイルを読み書きする。
- 速度とアロケーションが重要な場面で、大きなYAMLファイルを解析する。
- 手書きのYAML設定ファイルに対し、スキーマに基づくエディター検証を提供する。
クイックスタート
- 1
NuGet から VYaml パッケージをインストールする
dotnet add package VYaml - 2
Unity に NuGetForUnity をインストールしてから、NuGet ウィンドウで VYaml パッケージをインストールする
使う前に知っておきたいこと
- 主に Unity 向けで、Unity 2021.3 以降が必要です。
- YAML 1.2 は部分的にのみサポートされています。
- ノードツリー表現はまだサポートされていません(ロードマップに含まれています)。
- enum は単純な文字列表現としてのみシリアライズされます。
収録されている特集
トピック
よくある質問
- VYaml とは?
- ソース生成によるシリアライズに対応した、.NETとUnity向けの高性能・低アロケーションなC#製YAML 1.2ライブラリ。 VYamlは、.NETとUnity向けにpure C#で実装されたYAML 1.2ライブラリです。UTF-8バイト列を直接扱う低レベルのパーサーとエミッターに加え、YAMLとユーザー定義のC#型を相互変換する高レベルのシリアライザーを備えています。シリアライズコードは、[YamlObject]属性を通じてソースジェネレーターがコンパイル時に生成するため、実行時リフレクションを使わずに済みます。
- VYaml は無料で使えますか?ライセンスは?
- VYaml は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- VYaml は今もメンテナンスされていますか?
- 活発にメンテナンス中。VYaml の最終コミットは 2026年11月5日 です。
- VYaml は何に使えますか?
- UnityプロジェクトでYAML形式のゲームデータや設定データを読み込む。 .NETのサービスやツールでYAML設定ファイルを読み書きする。 速度とアロケーションが重要な場面で、大きなYAMLファイルを解析する。 手書きのYAML設定ファイルに対し、スキーマに基づくエディター検証を提供する。
- VYaml のインストール方法は?
- NuGet から VYaml パッケージをインストールする: dotnet add package VYaml Unity に NuGetForUnity をインストールしてから、NuGet ウィンドウで VYaml パッケージをインストールする
- VYaml はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/hadashiA/VYaml
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
LZ4圧縮を標準搭載した、.NET、.NET Core、Unity、Xamarin対応の超高速C#向けMessagePackシリアライザー。
Microsoft.Extensions.Loggingを基盤とし、UTF8出力に対応した.NETおよびUnity向けのゼロアロケーションなテキスト・構造化ロガー。
JSON、JSON Schema、TypeScript、GraphQLクエリから、さまざまな言語の型付きモデルとシリアライザーを生成します。
純粋なTypeScript型を、実行時バリデーター、JSONシリアライザー、Protocol Bufferコーデック、ランダムデータ生成器にコンパイルするTypeScriptトランスフォーマー。