Tomlyn 0.17.0
dotnet add package Tomlyn --version 0.17.0
NuGet\Install-Package Tomlyn -Version 0.17.0
<PackageReference Include="Tomlyn" Version="0.17.0" />
paket add Tomlyn --version 0.17.0
#r "nuget: Tomlyn, 0.17.0"
// Install Tomlyn as a Cake Addin #addin nuget:?package=Tomlyn&version=0.17.0 // Install Tomlyn as a Cake Tool #tool nuget:?package=Tomlyn&version=0.17.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
DocumentSyntax
viaToml.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.Validate
method. - 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
ThisIsFine
tothis_is_fine
). This behavior can be changed by overriding theTomlModelOptions.ConvertPropertyName
delegate.
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 is compatible. 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. |
.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.
-
net7.0
- No dependencies.
NuGet packages (22)
Showing the top 5 NuGet packages that depend on Tomlyn:
Package | Downloads |
---|---|
ROFSDB
Package Description |
|
DafnyCore
Package Description |
|
Deislabs.Bindle
Provides a client for Bindle.WARNING: Bindle is experimental. It is not considered production-grade by its developers, neither is it "supported" software. |
|
StateSmith
StateSmith is a cross platform, free/open source tool for generating state machines in multiple languages. The generated code is human readable, has zero dependencies and is suitable for use with tiny bare metal microcontrollers, kernels, computers... It avoids dynamic memory allocations for the safety or performance inclined. |
|
Tomlyn.Extensions.Configuration
TomlConfigurationProvider using Tomlyn |
GitHub repositories (16)
Showing the top 5 popular GitHub repositories that depend on Tomlyn:
Repository | Stars |
---|---|
dafny-lang/dafny
Dafny is a verification-aware programming language
|
|
microsoft/Oryx
Build your repo automatically.
|
|
xoofx/dotnet-releaser
Easily build, run tests and coverage, cross-compile, package and publish your .NET library or application to NuGet and GitHub.
|
|
StateSmith/StateSmith
A state machine code generation tool suitable for bare metal, embedded and more.
|
|
rwmt/Multiplayer
Zetrith's Multiplayer mod for RimWorld
|
Version | Downloads | Last updated |
---|---|---|
0.17.0 | 351,082 | 11/23/2023 |
0.16.2 | 552,048 | 12/22/2022 |
0.16.1 | 36,909 | 10/27/2022 |
0.16.0 | 23,688 | 10/20/2022 |
0.15.1 | 40,970 | 10/13/2022 |
0.15.0 | 235,586 | 7/1/2022 |
0.14.4 | 2,839 | 6/21/2022 |
0.14.3 | 556,890 | 5/9/2022 |
0.14.2 | 40,950 | 4/21/2022 |
0.14.1 | 1,240 | 4/3/2022 |
0.14.0 | 5,091 | 3/10/2022 |
0.13.1 | 1,079 | 3/6/2022 |
0.13.0 | 1,025 | 3/5/2022 |
0.12.1 | 1,009 | 3/5/2022 |
0.12.0 | 1,587 | 2/27/2022 |
0.11.0 | 1,912 | 2/14/2022 |
0.10.2 | 2,516 | 2/1/2022 |
0.10.1 | 1,188 | 1/31/2022 |
0.10.0 | 1,594 | 1/27/2022 |
0.9.1 | 1,257 | 1/25/2022 |
0.9.0 | 1,392 | 1/25/2022 |
0.4.1 | 1,190 | 1/23/2022 |
0.4.0 | 1,188 | 1/23/2022 |
0.3.1 | 1,355 | 1/14/2022 |
0.3.0 | 1,229 | 1/14/2022 |
0.1.2 | 1,202,962 | 3/8/2020 |
0.1.1 | 10,300 | 2/13/2019 |
0.1.0 | 3,016 | 2/12/2019 |