Skip to content
Go to file

Latest commit

User can now map TOML objects into specific base types via
specifying a concrete activator. A consequence is that the
ambiguous API MapTableKey is not needed anymore. This
is a good thing but will introduce a breaking change with
the next release.

While this commit makes it work and all test are green, I have
the feeling not all scenarios will work as e.g. the ToDictionary
test are not good enough to catch all issues here.

In general the conversion from TOML object graph to a CLR
object graph has a lot of technical debt. E.g. conversion is
partially handled by converter and partially handled by the
TOML objects themselves. The visitor pattern there is a pain.
Future work will be needed to improve the code base in this

Another consequence of this inconsistencies is, that the
CreateInstanceContext KeyChain property most of the time
is not filled with correct data.

Related #90

Git stats


Failed to load latest commit information.

What is Nett?

Nett is a library to read and write TOML files in .Net.

Nett Nett.Coma Nett.AspNet Build
NuGet NuGet NuGet Build Status

| Release Notes | Documentation | NuGet |

How to build?


  1. NuGet 4.9.3+ available on command line
  2. Visual Studio 2017+ with .Net development workload
  3. DocFX for generating the documentation


Build Projects

  1. On Command Line
    1. Setup some auto generated files by running tagger.ps1
    2. Restore NuGet packages by running nuget.exe restore
    3. Build project by running build.ps1
  2. With Visual Studio
    1. Setup some auto generated files by running tagger.ps1
    2. Open Nett.sln and build in Visual Studio

Build & check documentation

  1. Run docfx.exe dfx\docfx.json --serve
  2. Open Browser with http://localhost:8080

Build NuGet package

  1. Compile in release mode, packages will be in output folder


The primary way to contribute to Nett is via creating and discussing issues. You can also submit commit pull requests. But often filing a issue will be quicker and less painful.

Often, issues with good reproduction steps, will get fixed within a few days.

Filing issues

Filing good issues can help to quickly fix bugs or add functionality you deem important.


  • Try to add good reproduction steps
    • In General: Some code fragment is worth more than a 1000 words
    • Ideally you have a few lines of unit test code that reproduce the issue.
    • Or add some pseudo code to the issue
  • If an exception is thrown
    • Include the exception type, message and stack trace
    • Try to use code blocks for formatting that
    • Also include inner and/or aggregate exceptions
  • Include a TOML fragment that causes an issue


  • Make a good clear use case description
  • Describe the benefits
  • What problems will that feature solve

Pull requests

To ensure your PRs get merged you should ensure that the following requirements are met

  • Adhere to the existing coding standard
  • Added tests for the change you did
  • Ran all existing tests before submitting the PR
  • Added a section to

The final decision is up to the maintainer. Normally a reason why a PR is rejected will be given but is not mandatory.

Probably it's better to start a short discussion first instead of doing a surprise PR. Also see Don't "Push" Your Pull Request

Note: No written coding standard etc. is available. It has to be deducted from the existing code base.

Generally the directive in the Nett project is to add more tool automation to check all these things automatically instead of written docs that are outdated the moment they are published.

More and more of these automated checks will be added over time.


.Net library for TOML




You can’t perform that action at this time.