This directory contains the production .NET implementation, published as two NuGet packages from a shared source tree:
| Package | Project | Install | Use case |
|---|---|---|---|
clink |
Foundation.Data.Doublets.Cli/ |
dotnet tool install --global clink |
Run the CLI without writing any C#. |
Foundation.Data.Doublets.Cli |
Foundation.Data.Doublets.Cli.Library/ |
dotnet add package Foundation.Data.Doublets.Cli |
Embed the parser, query processors, decorators, named/pinned types, persistent transformation trigger decorator, and LiNo I/O in another .NET project. |
The CLI csproj only contains Program.cs plus the System.CommandLine
wiring; every reusable type lives in the library project so external apps
can recreate or extend the CLI without re-implementing any of the internals.
dotnet tool install --global clinkUpdate an existing installation:
dotnet tool update --global clinkTo consume the library inside another .NET project:
dotnet add package Foundation.Data.Doublets.CliAPI documentation is generated by DocFX from the library's XML doc
comments and is published to GitHub Pages alongside the Rust rustdoc
site by .github/workflows/docs.yml.
clink '() ((1 1))' --changes --afterThe CLI exposes the complete command surface, including persistent
transformation triggers with --always, --once, --never, --triggers,
--triggers-file, and --embed-triggers. Each option is implemented in
the public library, so other .NET applications can call into the same
processors directly.
Pass --transactions (or any flag in the family — --transactions-file,
--commit-mode, --retention, --log) to record each Create/Update/Delete
as a reversible transition in a sidecar doublets store. Pass --vc
(or --vc-file, --branch, --branch-from, --checkout, --tag,
--list-branches, --list-tags) to add a version-control layer over the
recorded transitions log:
# Record reversible transitions into data.transitions.links
clink --db data.links --transactions --auto-create-missing-references '() ((1 1))'
clink --db data.links --log
# Branch and tag on top of the transitions log
clink --db data.links --vc --tag v1
clink --db data.links --vc --branch feature --branch-from 1
clink --db data.links --vc --list-branchesBeginTransaction() / Commit() / Rollback() are also exposed on the
library API for explicit batches. End-to-end demo scripts live in
examples/transactions/ and
examples/version-control/.
dotnet restore
dotnet build --configuration Release
dotnet test --configuration ReleaseRelease automation for this package lives in csharp/scripts/ and uses
changesets from csharp/.changeset/.