TLio.Client
0.10.0-preview.1
dotnet add package TLio.Client --version 0.10.0-preview.1
NuGet\Install-Package TLio.Client -Version 0.10.0-preview.1
<PackageReference Include="TLio.Client" Version="0.10.0-preview.1" />
<PackageVersion Include="TLio.Client" Version="0.10.0-preview.1" />
<PackageReference Include="TLio.Client" />
paket add TLio.Client --version 0.10.0-preview.1
#r "nuget: TLio.Client, 0.10.0-preview.1"
#:package TLio.Client@0.10.0-preview.1
#addin nuget:?package=TLio.Client&version=0.10.0-preview.1&prerelease
#tool nuget:?package=TLio.Client&version=0.10.0-preview.1&prerelease
TLio.Client
The scripting engine for TLio — parses and executes TLio scripts against any structured data format. Format-neutral: format support is registered through the provider pattern.
dotnet add package TLio.Client
Quick start (JSON)
using Newtonsoft.Json.Linq;
using TLio.Client;
using TLio.Json;
var options = ParseOptions<JToken>.CreateDefault();
var engine = new ScriptEngine<JToken>(options.CommandsProvider, options.FunctionsProvider);
var result = engine.Execute(scriptJson, data, JsonExecutionContext.CreateDefault());
A script is a plain array of command objects:
[
{ "command": "put", "path": "$.status", "value": "active" },
{ "command": "add", "path": "$.createdAt", "value": "=datetime()" },
{ "command": "remove", "path": "$.tempId" }
]
Writing the script in XML or YAML
The same script has an XML and a YAML spelling. The notation is independent of the format of the data — only the paths inside the script have to speak the data's path language. JSON works out of the box; the other two register in a line each:
var engine = new ScriptEngine<JToken>(options.CommandsProvider, options.FunctionsProvider)
.UseXmlScripts() // TLio.Xml
.UseYamlScripts(); // TLio.Yaml
engine.Execute(scriptText, data, context); // notation detected from the text
engine.Execute(scriptText, ScriptFormat.Xml, data, context); // or stated outright
<script>
<put path="$.status">active</put>
<add path="$.createdAt">=datetime()</add>
<remove path="$.tempId"/>
</script>
- command: put
path: $.status
value: active
- command: add
path: $.createdAt
value: "=datetime()"
- command: remove
path: $.tempId
Text that does not parse yields an empty script carrying the reason in
TLioScript.ParseWarnings rather than throwing.
What's in the box
ScriptEngine<TNode>— parse and execute scripts in any of the three notationsCompiledScript<TNode>— parse once, execute many timesParseOptions<TNode>— command and function registriesTLioConvert— fluent convenience API
Registering extension packs
options.CommandsProvider.RegisterETL<JToken>(); // TLio.Extensions.ETL
options.FunctionsProvider.RegisterText<JToken>(); // TLio.Extensions.Text
options.FunctionsProvider.RegisterMath<JToken>(); // TLio.Extensions.Math
options.FunctionsProvider.RegisterTimeDate<JToken>(); // TLio.Extensions.TimeDate
Pick a format adapter
| Format | Package | Context factory |
|---|---|---|
| JSON (Newtonsoft) | TLio.Json |
JsonExecutionContext.CreateDefault() |
| JSON (System.Text.Json) | TLio.Json.SystemText |
SystemTextJsonExecutionContext.CreateDefault() |
| XML | TLio.Xml |
XmlExecutionContext.CreateWithSlashPaths() / CreateWithNativeXPath() |
| YAML | TLio.Yaml |
YamlExecutionContext.CreateDefault() |
License
MIT — see the repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- TLio.Commands (>= 0.10.0-preview.1)
- TLio.Core (>= 0.10.0-preview.1)
- TLio.Functions (>= 0.10.0-preview.1)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on TLio.Client:
| Package | Downloads |
|---|---|
|
TLio.Yaml
TLio YAML adapter: INodeAdapter and IItemsFetcher implementations. Depends on YamlDotNet. |
|
|
TLio.Xml
TLio XML adapter: INodeAdapter and IItemsFetcher implementations backed by System.Xml.Linq (XElement) and XPath. |
|
|
TLio.FormatConverter
Format conversion for TLio: the convert and convertValue commands, MultiFormatScriptRunner, and the JSON, XML and YAML adapters they convert through. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.10.0-preview.1 | 81 | 8/24/2026 |
| 0.9.0 | 130 | 8/23/2026 |
| 0.9.0-preview.14 | 100 | 8/22/2026 |
| 0.9.0-preview.13 | 75 | 8/22/2026 |
| 0.9.0-preview.12 | 83 | 8/22/2026 |
| 0.9.0-preview.11 | 76 | 8/22/2026 |
| 0.9.0-preview.10 | 75 | 8/22/2026 |
| 0.9.0-preview.9 | 64 | 8/21/2026 |
| 0.9.0-preview.8 | 72 | 8/21/2026 |
| 0.9.0-preview.7 | 62 | 8/21/2026 |
| 0.9.0-preview.6 | 52 | 8/21/2026 |
| 0.9.0-preview.5 | 67 | 8/21/2026 |
| 0.9.0-preview.4 | 80 | 8/21/2026 |
| 0.8.0 | 131 | 8/20/2026 |
| 0.1.0-preview.22 | 85 | 8/20/2026 |
| 0.1.0-preview.21 | 75 | 8/20/2026 |
| 0.1.0-preview.19 | 65 | 8/20/2026 |
| 0.1.0-preview.18 | 68 | 8/20/2026 |
| 0.1.0-preview.17 | 75 | 8/20/2026 |
| 0.1.0-preview.16 | 78 | 8/19/2026 |