TLio.Client
1.1.0-preview.3
See the version list below for details.
dotnet add package TLio.Client --version 1.1.0-preview.3
NuGet\Install-Package TLio.Client -Version 1.1.0-preview.3
<PackageReference Include="TLio.Client" Version="1.1.0-preview.3" />
<PackageVersion Include="TLio.Client" Version="1.1.0-preview.3" />
<PackageReference Include="TLio.Client" />
paket add TLio.Client --version 1.1.0-preview.3
#r "nuget: TLio.Client, 1.1.0-preview.3"
#:package TLio.Client@1.1.0-preview.3
#addin nuget:?package=TLio.Client&version=1.1.0-preview.3&prerelease
#tool nuget:?package=TLio.Client&version=1.1.0-preview.3&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 (>= 1.1.0-preview.3)
- TLio.Core (>= 1.1.0-preview.3)
- TLio.Functions (>= 1.1.0-preview.3)
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 |
|---|---|---|
| 1.1.0-preview.5 | 89 | 9/27/2026 |
| 1.1.0-preview.4 | 53 | 9/27/2026 |
| 1.1.0-preview.3 | 68 | 9/24/2026 |
| 1.1.0-preview.2 | 55 | 9/24/2026 |
| 1.1.0-preview.1 | 57 | 9/24/2026 |
| 1.0.1 | 211 | 9/24/2026 |
| 1.0.0 | 117 | 9/20/2026 |
| 0.10.0-preview.6 | 60 | 9/20/2026 |
| 0.10.0-preview.5 | 64 | 9/20/2026 |
| 0.10.0-preview.4 | 64 | 9/18/2026 |
| 0.10.0-preview.3 | 78 | 9/18/2026 |
| 0.10.0-preview.2 | 67 | 9/13/2026 |
| 0.10.0-preview.1 | 100 | 8/24/2026 |
| 0.9.0 | 149 | 8/23/2026 |
| 0.9.0-preview.14 | 110 | 8/22/2026 |
| 0.9.0-preview.13 | 85 | 8/22/2026 |
| 0.9.0-preview.12 | 92 | 8/22/2026 |
| 0.9.0-preview.11 | 87 | 8/22/2026 |
| 0.9.0-preview.10 | 88 | 8/22/2026 |
| 0.9.0-preview.9 | 74 | 8/21/2026 |