Tomlyn 0.19.0
dotnet add package Tomlyn --version 0.19.0
NuGet\Install-Package Tomlyn -Version 0.19.0
<PackageReference Include="Tomlyn" Version="0.19.0" />
<PackageVersion Include="Tomlyn" Version="0.19.0" />
<PackageReference Include="Tomlyn" />
paket add Tomlyn --version 0.19.0
#r "nuget: Tomlyn, 0.19.0"
#:package Tomlyn@0.19.0
#addin nuget:?package=Tomlyn&version=0.19.0
#tool nuget:?package=Tomlyn&version=0.19.0
Tomlyn

<img align="right" width="160px" height="160px" src="img/logo.png">
Tomlyn is a TOML parser, validator and authoring library for .NET Framework and .NET Core.
What is TOML?
A config file format for humans. TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics. TOML is designed to map unambiguously to a hash table. TOML should be easy to parse into data structures in a wide variety of languages.
- See the official website https://toml.io/en/ for more details.
- Example and specifications are available at TOML v1.0.0
Features
- Very fast parser, GC friendly.
- Compatible with the latest TOML v1.0.0 specs.
- Allow to map a TOML string to a default runtime model via
Toml.ToModel(string) - Allow to map a TOML string to a custom runtime model via
Toml.ToModel<T>(string)- Very convenient for loading custom configurations for example.
- Allow to generate a TOML string from a runtime model via
string Toml.FromModel(object)- Preserve comments, by default with the default runtime model, or by implementing the
ITomlMetadataProvider.
- Preserve comments, by default with the default runtime model, or by implementing the
- Allow to parse to a
DocumentSyntaxviaToml.Parse(string).- Preserve all spaces, new line, comments but also invalid characters/tokens.
- Can roundtrip to text with exact representation.
- Provides a validator with the
Toml.Validatemethod. - Supports for .NET Standard 2.0+ and provides an API with nullable annotations.
Documentation
See the documentation for more details.
Install
Tomlyn is delivered as a NuGet Package.
Usage
var toml = @"global = ""this is a string""
# This is a comment of a table
[my_table]
key = 1 # Comment a key
value = true
list = [4, 5, 6]
";
// Parse the TOML string to the default runtime model `TomlTable`
var model = Toml.ToModel(toml);
// Fetch the string
var global = (string)model["global"]!;
// Prints: found global = "this is a string"
Console.WriteLine($"found global = \"{global}\"");
// Generates a TOML string from the model
var tomlOut = Toml.FromModel(model);
// Output the generated TOML
Console.WriteLine(tomlOut);
This will print the original TOML by preserving most the comments:
global = "this is a string"
# This is a comment of a table
[my_table]
key = 1 # Comment a key
value = true
list = [4, 5, 6]
NOTICE: By default, when mapping to a custom model, Tomlyn is using the PascalToSnakeCase naming convention (e.g
ThisIsFinetothis_is_fine). This behavior can be changed by overriding theTomlModelOptions.ConvertPropertyNamedelegate.
License
This software is released under the BSD-Clause 2 license.
Credits
Modified version of the logo Thor by Mike Rowe from the Noun Project (Creative Commons)
Author
Alexandre Mutel aka xoofx.
| 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 is compatible. 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. |
-
.NETStandard 2.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (46)
Showing the top 5 NuGet packages that depend on Tomlyn:
| Package | Downloads |
|---|---|
|
ROFSDB
Package Description |
|
|
DafnyCore
Package Description |
|
|
Ikon.Common.Core
Ikon Common Core is a .NET library that provides common functionality for the Ikon AI C# SDK |
|
|
CounterStrikeSharp.API
Official server side runtime assembly for CounterStrikeSharp |
|
|
SwiftlyS2.CS2
Package Description |
GitHub repositories (23)
Showing the top 20 popular GitHub repositories that depend on Tomlyn:
| Repository | Stars |
|---|---|
|
dafny-lang/dafny
Dafny is a verification-aware programming language
|
|
|
roflmuffin/CounterStrikeSharp
CounterStrikeSharp allows you to write server plugins in C# for Counter-Strike 2/Source2/CS2
|
|
|
microsoft/Oryx
Build your repo automatically.
|
|
|
StateSmith/StateSmith
A state machine code generation tool suitable for bare metal, embedded and more.
|
|
|
xenia-manager/xenia-manager
Xenia Manager is a tool that tries to make using Xenia Emulator easier.
|
|
|
xoofx/dotnet-releaser
Easily build, run tests and coverage, cross-compile, package and publish your .NET library or application to NuGet and GitHub.
|
|
|
rwmt/Multiplayer
Zetrith's Multiplayer mod for RimWorld
|
|
|
flipswitchingmonkey/FlexASIO_GUI
Simple configuration GUI for FlexASIO
|
|
|
exercism/csharp
Exercism exercises in C#.
|
|
|
h4lfheart/FortnitePorting
Lightning-Quick Automation of the Fortnite Porting Process
|
|
|
imazen/imageflow-server
A super-fast image server to speed up your site - deploy as a microservice, serverless, or embeddable.
|
|
|
LiuYunPlayer/TuneLab
|
|
|
Doddler/RagnarokRebuildTcp
Ragnarok-like server + client
|
|
|
ohhsodead/arisen-studio
Browse, Download and Install Mods for PlayStation 3 & Xbox 360
|
|
|
ItsDeltin/Overwatch-Script-To-Workshop
Converts scripts to Overwatch workshops.
|
|
|
PCL-Community/PCL.Neo
一个用 Avalonia 重写的 PCL
|
|
|
TekkaGB/DivaModManager
|
|
|
yiikooo/YMCL.Avalonia
Yu Minecraft Launcher · YMCL !
|
|
|
yiikooo/Aurelio
|
|
|
toonymak1993/GameConsoleMode
|
| Version | Downloads | Last Updated |
|---|---|---|
| 0.19.0 | 281,856 | 3/11/2025 |
| 0.18.0 | 81,242 | 12/22/2024 |
| 0.17.0 | 962,313 | 11/23/2023 |
| 0.16.2 | 719,035 | 12/22/2022 |
| 0.16.1 | 38,802 | 10/27/2022 |
| 0.16.0 | 24,366 | 10/20/2022 |
| 0.15.1 | 45,247 | 10/13/2022 |
| 0.15.0 | 254,769 | 7/1/2022 |
| 0.14.4 | 3,631 | 6/21/2022 |
| 0.14.3 | 574,673 | 5/9/2022 |
| 0.14.2 | 42,149 | 4/21/2022 |
| 0.14.1 | 1,806 | 4/3/2022 |
| 0.14.0 | 5,851 | 3/10/2022 |
| 0.13.1 | 1,653 | 3/6/2022 |
| 0.13.0 | 1,608 | 3/5/2022 |
| 0.12.1 | 1,585 | 3/5/2022 |
| 0.12.0 | 2,183 | 2/27/2022 |
| 0.11.0 | 2,739 | 2/14/2022 |
| 0.10.2 | 3,133 | 2/1/2022 |
| 0.10.1 | 1,762 | 1/31/2022 |
| 0.10.0 | 2,227 | 1/27/2022 |
| 0.9.1 | 1,835 | 1/25/2022 |
| 0.9.0 | 2,235 | 1/25/2022 |
| 0.4.1 | 1,765 | 1/23/2022 |
| 0.4.0 | 1,782 | 1/23/2022 |
| 0.3.1 | 1,914 | 1/14/2022 |
| 0.3.0 | 1,833 | 1/14/2022 |
| 0.1.2 | 1,218,734 | 3/8/2020 |
| 0.1.1 | 14,303 | 2/13/2019 |
| 0.1.0 | 3,861 | 2/12/2019 |