![]() |
VOOZH | about |
dotnet add package BymlLibrary --version 2.1.18
NuGet\Install-Package BymlLibrary -Version 2.1.18
<PackageReference Include="BymlLibrary" Version="2.1.18" />
<PackageVersion Include="BymlLibrary" Version="2.1.18" />Directory.Packages.props
<PackageReference Include="BymlLibrary" />Project file
paket add BymlLibrary --version 2.1.18
#r "nuget: BymlLibrary, 2.1.18"
#:package BymlLibrary@2.1.18
#addin nuget:?package=BymlLibrary&version=2.1.18Install as a Cake Addin
#tool nuget:?package=BymlLibrary&version=2.1.18Install as a Cake Tool
<div align="center"> <img src="https://github.com/EPD-Libraries/BymlLibrary/blob/master/icon.png" width="100vh"> <h1>- BYML Library -</h1> </div>
Modern Binary Yml IO library written in managed C#
Supports versions 2-7.
Some v7 nodes may not be supported, but everything used in TotK is.
using BymlLibrary;
using Revrs;
byte[] data = File.ReadAllBytes("path/to/file.byml");
Byml byml = Byml.FromBinary(data);
using BymlLibrary;
using Revrs;
byte[] data = File.ReadAllBytes("path/to/file.byml");
RevrsReader reader = new(data);
ImmutableByml byml = new(ref reader);
/* ... */
// Avoid writing directly to
// a file stream. Seeking is
// much slower and used extensively
// during serialization.
using MemoryStream ms = new();
byml.WriteBinary(ms, Endianness.Little);
// Write to a byte[]
byte[] data = byml.ToBinary(Endianness.Little);
Benchmarks for
Actors/ActorInfo.product.byml(BotW for Switch | 1.9 MB)
| Method | Mean | Gen0 | Gen1 | Gen2 | Allocated |
|---|---|---|---|---|---|
| Read | 78.26 ms | 3000.0000 | 2857.1429 | 571.4286 | 37.42 MB |
| ReadImmutable | 15.97 ns | - | - | - | - |
| Write | 41.26 ms | 1250.0000 | 583.3333 | 250.0000 | 24.44 MB |
| ToBinary | 41.87 ms | 1307.6923 | 615.3846 | 307.6923 | 26.32 MB |
| ToYaml | 39.87 ms | 1615.3846 | 615.3846 | 615.3846 | 40.48 MB |
| FromYaml | 115.69 ms | 3000.0000 | 2800.0000 | 600.0000 | 38.74 MB |
Benchmarks for
GameData/GameDataList.Product.110.byml(TotK 1.2.1 | 12.4 MB)
| Method | Mean | Gen0 | Gen1 | Gen2 | Allocated |
|---|---|---|---|---|---|
| ReadImmutable | 16.52 ns | - | - | - | - |
| Read | 276.7 ms | 11500.0000 | 11000.0000 | 500.0000 | 174.09 MB |
| Write | 215.4 ms | 4000.0000 | - | - | 182.31 MB |
| ToBinary | 247.6 ms | 5000.0000 | 1000.0000 | 500.0000 | 191.16 MB |
| ToYaml | 169.7 ms | 5333.3333 | 333.3333 | 333.3333 | 186.38 MB |
| FromYaml | 496.1 ms | 13000.0000 | 12000.0000 | - | 209.17 MB |
Benchmarks for the test file (contains one of every node in a
Map)
| Method | Mean | Gen0 | Gen1 | Allocated |
|---|---|---|---|---|
| Read | 1.888 us | 0.2365 | - | 3.65 KB |
| ReadImmutable | 16.13 ns | - | - | - |
| Write | 5.388 us | 0.8545 | 0.0153 | 13.2 KB |
| ToBinary | 5.440 us | 0.9003 | 0.0229 | 13.82 KB |
| ToYaml | 2.487 us | 0.3242 | - | 5 KB |
| FromYaml | 6.968 us | 0.3052 | - | 4.76 KB |
ns (nanoseconds) is not μs (microseconds)
Install-Package BymlLibrary
git clone https://github.com/EPD-Libraries/BymlLibrary.git
dotnet build BymlLibrary
Special thanks to Léo Lam for his extensive research on EPD file formats.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.1.18 | 527 | 6/28/2024 |
| 2.1.17 | 273 | 6/27/2024 |
| 2.1.16 | 285 | 6/5/2024 |
| 2.1.15 | 264 | 6/5/2024 |
| 2.1.14 | 293 | 6/1/2024 |
| 2.1.13 | 274 | 5/6/2024 |
| 2.1.12 | 299 | 5/6/2024 |
| 2.1.11 | 363 | 4/23/2024 |
| 2.1.10 | 273 | 4/14/2024 |
| 2.1.9 | 328 | 4/12/2024 |
| 2.1.8 | 425 | 4/6/2024 |
| 2.1.7 | 278 | 4/6/2024 |
| 2.1.6 | 311 | 2/24/2024 |
| 2.1.5 | 313 | 2/4/2024 |
| 2.1.4 | 320 | 1/28/2024 |
| 2.1.3 | 263 | 1/28/2024 |
| 2.1.2 | 279 | 1/21/2024 |
| 2.1.1 | 294 | 1/18/2024 |
| 2.1.0 | 266 | 1/18/2024 |
| 2.0.6 | 296 | 1/16/2024 |