Herald.OSS 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Herald.OSS --version 0.1.0
                    
NuGet\Install-Package Herald.OSS -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Herald.OSS" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Herald.OSS" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Herald.OSS" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Herald.OSS --version 0.1.0
                    
#r "nuget: Herald.OSS, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Herald.OSS@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Herald.OSS&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Herald.OSS&version=0.1.0
                    
Install as a Cake Tool

Herald.OSS

Open-source structured logging core for .NET. Apache 2.0.

CI License: Apache 2.0

Herald.OSS is the upstream distribution of the Herald logging kernel. The kernel passes a stack-allocated LogEventBuffer directly to sinks through one contract — IKernelSink. Every built-in sink implements it; the HeraldSinkBase abstract class is the one-line entry point for custom sinks. The accept path stays zero-allocation across every call shape — typed-args, params ReadOnlySpan<LogProperty>, the interpolated handler, and the level-bound interpolated variant.

Targets .NET 8, .NET 9, and .NET 10. AOT-clean. Trim-safe.

Status — v0.1.0

This is the first open-source release. The source is forked from Herald.Core at commit 98d23fd with edition-gating machinery removed (no Pro / Enterprise capability checks, no provenance gate, no distribution-hardening overlay). Functionality of the kernel + pipeline + sinks is otherwise unchanged. See FORK_SCOPE.md for the authoritative list of what was stripped.

What's in v0.1.0

  • src/ — the pipeline, kernel, formatters, addons not gated to Pro / Enterprise
  • native/dotnet/ — the .NET implementation of the kernel, pipeline, and bootstrap
  • generators/ — source-generator project ([HeraldLog] etc.)
  • tests/ — workhorse test suite covering build, kernel fan-out, level filtering, multi-tenancy, hot reload, sink isolation, and plugin-trust paths (17 tests, all passing on net8 / net9 / net10)
  • benchmarking/library/{net8,net9,net10}/ — narrow Herald-only benches across TFMs
  • benchmarking/comparisons/net10/ — head-to-head benches against Serilog, NLog, MEL, ZLogger, log4net
  • docs/howtos/ — task-oriented guides (quickstart, sinks, operations)
  • docs/guides/ — architectural and SDK references
  • docs/benchmarks/ — published benchmark methodology and results
  • docs/testing/ — test suite scope and conventions
  • LICENSE — Apache License 2.0
  • NOTICE — required Apache 2.0 attribution

Benchmark headlines (4-property accept call, net10):

Library Latency Allocation
Herald.OSS 27 ns 0 B
NLog 58 ns 248 B
MEL 151 ns 208 B
log4net 191 ns 336 B
Serilog 208 ns 720 B
ZLogger 299 ns 71 B

Full results, methodology, and reproduction commands live under docs/benchmarks/. The consolidated rollup is docs/benchmarks/consolidated-benchmarks.md.

Getting started

Guides (conceptual + SDK):

Quick example

using MMP.Herald.Events;
using MMP.Herald.Quick;

var result = QuickLogBuilder.Create()
    .WithConsoleSink()
    .WithMinimumLevel("info")
    .BuildAndCommit();

result.Logger.Info(LogCategory.App,
    "User {UserId} purchased {Sku} for {Price}", 42, "alpha", 9.99);

Relationship to Herald.Core

Herald.OSS is the upstream. Herald.Core is the commercial distribution layered on top:

Herald.OSS (Apache 2.0)
    │
    └─→ Herald.Core (Apache 2.0 + edition-gated extensions)
            │
            ├─→ Herald.Pro packages (extensions gated to Pro)
            └─→ Herald.Enterprise packages (extensions gated to Enterprise)

Future feature work that doesn't depend on the gate machinery lands in Herald.OSS first; Herald.Core absorbs it. Edition-gated work lands directly in Herald.Core.

Contributing

Contributions welcome. See CONTRIBUTING.md for the process. First-time contributors will be asked to sign the CLA — the same CLA covers every Herald repository.

Security vulnerabilities: see SECURITY.md. Do not file public issues.

License

Apache 2.0. See LICENSE and NOTICE.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (89)

Showing the top 5 NuGet packages that depend on Herald.OSS:

Package Downloads
MMP.Licensing.Contracts

Canonical contracts surface for Herald licensing: HeraldLicenseException, HeraldLicenseRevokedException, LicenseInfo, HeraldLicense static gate, and the v2.1 EditionCapabilityPresets catalog (generated from data/licensing/{capabilities,presets}/*.json by tools/catalog-gen/). Paid packages + Server/ManagementApi ProjectReference this package so the exception types have one runtime identity at the Server middleware boundary, regardless of which paid assembly throws.

MMP.Licensing

Ed25519 license verification for MMPWorks paid packages. v2 wire format + v2.1 caps/cv claim expansion. Engine (pure verifier with EditionCapabilityPresets cap-set resolution) + platform (locator, cache, gate) layers. v2.2 adds license-lifecycle surface (LicenseStateMachine, DemoModeSource, LicenseNag), trusted-clock binding (ITrustedClock three-tier resolution), and hosted check-in client (CheckInClient with Polly v8 resilience) per ADR-211/214/216/219. v2.3 consumes Herald.OSS 0.8.0 cap surface: HeraldLicenseVerifierV2.Verify seeds HeraldVersion.CurrentCapabilities (first-write-wins); new ComponentLifecycleCoordinator drives Active ↔ Unsupported transitions per ADR-220 and owns HeraldVersion.ReplaceCurrentCapabilities for post-boot cap-set changes. Source-linked by consumer products per ADR-0001.

MMP.Herald.Business

Herald observability metapackage for business and enterprise deployments. Pulls in every Herald.Sinks destination — HTTP, TCP, UDP, every Enterprise HTTP sink (Seq, Splunk, Honeycomb, Datadog, Loki, SignalFx, Sentry, PagerDuty), community transports (Elasticsearch, Slack, GenericWebhook), and the OTLP trio. Depend on this one package and pick destinations at registration time.

MMP.Herald.Sinks.Otlp

Herald sinks for the OpenTelemetry Logs Protocol. Ships three sinks (OTLP JSON, OTLP protobuf, length-delimited protobuf file) that share a hand-rolled protobuf writer so the package stays AOT-clean — no generated messages, no reflection, no IMessage codegen.

MMP.Herald.Sinks.Seq

Posts Herald log events to a Seq server as newline-delimited CLEF over HTTP. Matches the wire format Serilog.Sinks.Seq uses so existing Seq deployments keep working.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.10.0 339 5/26/2026
0.9.0 49 5/24/2026
0.8.1 64 5/20/2026
0.8.0 110 5/20/2026
0.7.1 120 5/20/2026
0.7.0 165 5/19/2026
0.6.0 79 5/19/2026
0.5.1 80 5/19/2026
0.5.0 78 5/19/2026
0.4.0 82 5/19/2026
0.2.0 77 5/16/2026
0.1.0 92 5/15/2026