Vestigium.Helpers.Csv
1.0.0
dotnet add package Vestigium.Helpers.Csv --version 1.0.0
NuGet\Install-Package Vestigium.Helpers.Csv -Version 1.0.0
<PackageReference Include="Vestigium.Helpers.Csv" Version="1.0.0" />
<PackageVersion Include="Vestigium.Helpers.Csv" Version="1.0.0" />
<PackageReference Include="Vestigium.Helpers.Csv" />
paket add Vestigium.Helpers.Csv --version 1.0.0
#r "nuget: Vestigium.Helpers.Csv, 1.0.0"
#:package Vestigium.Helpers.Csv@1.0.0
#addin nuget:?package=Vestigium.Helpers.Csv&version=1.0.0
#tool nuget:?package=Vestigium.Helpers.Csv&version=1.0.0
Vestigium.Helpers.Csv
RFC 4180 CSV / TSV for Vestigium hosts. One session owns one rectangle. ClosedXml stays .xlsx. This package is delimited text only.
Identity
| Field | Value |
|---|---|
| Package | Vestigium.Helpers.Csv 1.0.0 |
| TFM | net10.0 |
| APPID | Csv (CsvCatalog.AppId) |
| EVENTID | Reserved 11500–11999 (used through 11560) |
| Depends on | Vestigium.Helpers.Analytics, Vestigium.Logging |
| License | MIT |
| Contract | 002 -- Requirements Document |
Consume
<PackageReference Include="Vestigium.Helpers.Csv" Version="1.0.0" />
using Vestigium.Helpers.Csv;
using var file = CsvHelper.Create("PingIQ");
file.WriteTable(CsvTable.Create(["ms", "utc"], [[12.4, at], [11.9, at]]));
var path = file.SaveAs(CsvHelper.NewExportPath("PingIQ", "rtt"));
TSV: pass CsvOptions.Tab. Default write is UTF-8 with BOM so Excel sees Unicode.
Surface
| Call | Returns | Notes |
|---|---|---|
CsvHelper.Create(appId?, options?) |
CsvSession |
Empty table until WriteTable. |
CsvHelper.Open(path, …) |
CsvSession |
Missing file throws. |
CsvHelper.OpenOrCreate(path, …) |
CsvSession |
Creates only when the path is missing. |
CsvHelper.WriteTable(table, path) |
string |
One-shot write. |
CsvHelper.Read(path) |
CsvTable |
Round-trip of a file this library wrote. |
CsvHelper.WriteSeries(file, series) |
void | Sample dump: index, value, timestamp. |
file.WriteTable / AppendRows / Read |
table or void | Append needs a table first. |
file.Save / SaveAs / WriteTo |
path or void | Creates parent directories. |
CsvCatalog.Register(cfg) |
void | Host-only, during VestigiumLogger.Initialize. |
Dialects: CsvOptions.Rfc4180, .Tab, .Semicolon, .Pipe.
Rules that do not move
- Delimited text only. No ClosedXML. No multi-sheet CSV.
- Quote is
". Write CRLF. Read CR / LF / CRLF. - Leading
= + - @are neutralized. Non-finite numbers are rejected. - Delimiter cannot be quote, CR, LF, NUL, or a surrogate.
- One session, one owner. The library never calls
VestigiumLogger.Initialize. - Tests never touch the real Desktop.
Logging
VestigiumLogger.Initialize(cfg =>
{
cfg.AppId = "PingIQ"; // host APPID, not Csv
cfg.LogDirectory = logDir;
CsvCatalog.Register(cfg);
});
Writes are no-ops until the host initializes. JSONL lands at %ProgramData%\Vestigium\Logs\{host-APPID}\. Correlation id is SessionId.
Named events live in EventCatalog/csv.json.
Related
Workbook sibling: Vestigium.Helpers.ClosedXml. Numbers: Vestigium.Helpers.Analytics.
Long-form documents live in Vestigium.Documentation / Helpers / Csv. Folders, not files — current revision sits inside the folder.
| Area | GitHub |
|---|---|
| 000 -- Archived | folder |
| 001 -- Implementation Plan | folder |
| 002 -- Requirements Document | folder |
| 003 -- Design Document | folder |
| 004 -- Developers Guide | folder |
| 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
- Vestigium.Helpers.Analytics (>= 1.0.2)
- Vestigium.Logging (>= 1.7.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 79 | 10/5/2026 |