A human-friendly language for programmatic authoring and safe interchange of tree-structured data.
Warning
This is currently in-development vaporware.
TON (Tree Object Notation) is a modern data language featuring two dialects: One for programmatic generation of data, and a static subset for safe data interchange.
TON is designed to be a pleasant and compact replacement for both XML and JSON, combining the best qualities of each, while allowing advanced users to programmatically generate large data sets using the full language dialect. At its simplest, TON can be used as a static data format just like XML or JSON, while at its full potential, it can be used to maintain large and complex textual databases at a level of maintainability that such data formats simply cannot achieve.
The original motivation for the creation of TON was the maintenance of the sorts of large data sheets that video games often use to describe things like areas, items, quests, characters, skills, etc. The code dialect should be well-suited to any similar use case. On the other hand, the data dialect can is well-suited as a safe and more compact replacement for XML and JSON, e.g. in networked APIs.
TON is an open standard. This project provides both the specification and the reference implementation in C#.
This project offers the following packages:
To install a tool package in a project, run dotnet tool install <name>
. To
install it globally, also pass -g
.
To install a library package, run dotnet add package <name>
.
For more information, please visit the project home page.
You will need the .NET SDK and Node.js installed. Simply run ./cake
(a Bash script) to build artifacts and run
tests. You can also run ./cake pack
to avoid running tests, or ./cake test
to just build and run tests.
These commands will use the Debug
configuration by default, which is suitable
for development and debugging. Pass -c Release
instead to get an optimized
build.
This project is licensed under the terms found in
LICENSE-0BSD
.