TeaLeaf.Generators
2.0.0-beta.14
This is a prerelease version of TeaLeaf.Generators.
dotnet add package TeaLeaf.Generators --version 2.0.0-beta.14
NuGet\Install-Package TeaLeaf.Generators -Version 2.0.0-beta.14
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TeaLeaf.Generators" Version="2.0.0-beta.14"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TeaLeaf.Generators" Version="2.0.0-beta.14" />
<PackageReference Include="TeaLeaf.Generators"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TeaLeaf.Generators --version 2.0.0-beta.14
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TeaLeaf.Generators, 2.0.0-beta.14"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TeaLeaf.Generators@2.0.0-beta.14
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TeaLeaf.Generators&version=2.0.0-beta.14&prerelease
#tool nuget:?package=TeaLeaf.Generators&version=2.0.0-beta.14&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
TeaLeaf.Generators
C# incremental source generator for the TeaLeaf data format. Generates compile-time serialization and deserialization code for DTOs annotated with [TeaLeaf].
Installation
dotnet add package TeaLeaf.Generators
Note: You also need the TeaLeaf package for runtime APIs (
TLDocument,TLReader, etc.).
Usage
Annotate your classes with [TeaLeaf] from TeaLeaf.Annotations:
using TeaLeaf.Annotations;
[TeaLeaf]
public partial class Employee
{
public string Name { get; set; } = "";
public int Age { get; set; }
[TLRename("dept")]
public string Department { get; set; } = "";
}
The source generator produces methods on the partial class at compile time:
ToTeaLeafText()-- serialize to TeaLeaf text with schemasToTeaLeafDocument(key?)-- create a fullTLDocumentwith schemasCompileToTeaLeaf(path, key?, compress?)-- compile directly to binary.tlbxFromTeaLeaf(TLDocument doc, key?)-- deserialize from a TeaLeaf document (static)FromTeaLeaf(TLValue value)-- deserialize from a TeaLeaf value (static)GetTeaLeafSchema()-- get the@structschema definition (static)
Why Use the Source Generator?
- No reflection: All serialization code is generated at compile time
- AOT-compatible: Works with Native AOT and trimming
- Build-time validation: Diagnostics (TL001-TL006) catch issues during compilation
- Better performance: No runtime type inspection overhead
Diagnostics
| Code | Description |
|---|---|
| TL001 | Type must be a class or record |
| TL002 | Type must be partial |
| TL003 | Unsupported property type |
| TL004 | Duplicate field name |
| TL005 | Missing parameterless constructor |
| TL006 | Property must have getter and setter |
License
MIT
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0-beta.14 | 88 | 2/17/2026 |
| 2.0.0-beta.13 | 80 | 2/13/2026 |
| 2.0.0-beta.12 | 77 | 2/13/2026 |
| 2.0.0-beta.11 | 73 | 2/12/2026 |
| 2.0.0-beta.10 | 72 | 2/12/2026 |
| 2.0.0-beta.9 | 77 | 2/12/2026 |
| 2.0.0-beta.8 | 81 | 2/10/2026 |
| 2.0.0-beta.7 | 76 | 2/10/2026 |
| 2.0.0-beta.6 | 73 | 2/10/2026 |
| 2.0.0-beta.5 | 73 | 2/10/2026 |
| 2.0.0-beta.4 | 71 | 2/9/2026 |
| 2.0.0-beta.3 | 71 | 2/9/2026 |
| 2.0.0-beta.2 | 80 | 2/4/2026 |