Novolis.IO.Ndjson
2026.1.1.54
dotnet add package Novolis.IO.Ndjson --version 2026.1.1.54
NuGet\Install-Package Novolis.IO.Ndjson -Version 2026.1.1.54
<PackageReference Include="Novolis.IO.Ndjson" Version="2026.1.1.54" />
<PackageVersion Include="Novolis.IO.Ndjson" Version="2026.1.1.54" />
<PackageReference Include="Novolis.IO.Ndjson" />
paket add Novolis.IO.Ndjson --version 2026.1.1.54
#r "nuget: Novolis.IO.Ndjson, 2026.1.1.54"
#:package Novolis.IO.Ndjson@2026.1.1.54
#addin nuget:?package=Novolis.IO.Ndjson&version=2026.1.1.54
#tool nuget:?package=Novolis.IO.Ndjson&version=2026.1.1.54
Novolis.IO.Ndjson
Seekable newline-delimited JSON files for diagnostics, telemetry exports, and other large append-only records.
NdjsonFileReader captures file identity without scanning to EOF. Reads extend
an in-memory sparse byte index only as far as the requested slice. Refresh
rechecks the previous boundary and scans only appended bytes when the file
continues unchanged. The reader uses shared, asynchronous file handles and
does not take an OS file lock.
NdjsonFileWriter appends one UTF-8 JSON value plus an LF and closes the file
after each write. It coordinates writers within one writer instance. Multiple
processes or pods must still assign one writer owner per file.
Install
dotnet add package Novolis.IO.Ndjson
Quick start
using Novolis.IO.Ndjson;
var path = new FileInfo("events.ndjson");
using var writer = new NdjsonFileWriter(path);
writer.Append(new { Id = 1, Message = "ready" });
await using var document = await new NdjsonFileReader().OpenAsync(path);
var slice = await document.ReadAsync(skip: 0, take: 100);
foreach (var record in slice.Records)
Console.WriteLine(record.Json?.GetRawText() ?? record.Raw);
An incomplete final physical line is excluded until a newline is present.
Malformed complete lines remain visible as records with Error and Raw.
| 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
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Novolis.IO.Ndjson:
| Package | Downloads |
|---|---|
|
Novolis.Storage.Ndjson
Typed append-only NDJSON store with tolerant reads and atomic replacement. |
|
|
Novolis.Avalonia.Ndjson
Avalonia slice chrome for large local NDJSON files. |
|
|
Novolis.Maui.Ndjson
MAUI slice viewer for large local NDJSON files. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.1.1.54 | 28 | 10/4/2026 |
| 2026.1.1.53 | 36 | 10/4/2026 |
| 2026.1.1.52 | 45 | 10/4/2026 |
| 2026.1.1.51 | 81 | 10/3/2026 |
| 2026.1.1.50 | 45 | 10/3/2026 |
| 2026.1.1.49 | 63 | 10/2/2026 |
| 2026.1.1.48 | 46 | 10/2/2026 |
| 2026.1.1.47 | 49 | 10/2/2026 |
| 2026.1.1.46 | 40 | 10/2/2026 |
| 2026.1.1.45 | 47 | 10/2/2026 |