Repolode
hadashiA

hadashiA/VYaml

ソース生成によるシリアライズに対応した、.NETとUnity向けの高性能・低アロケーションなC#製YAML 1.2ライブラリ。

代替できる製品:YamlDotNet

スター
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. 1

    NuGet から VYaml パッケージをインストールする

    dotnet add package VYaml
  2. 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 の数値は毎日更新されます。

関連プロジェクト