Expressif.OpenLineage 2.93.0

Prefix Reserved
dotnet add package Expressif.OpenLineage --version 2.93.0
                    
NuGet\Install-Package Expressif.OpenLineage -Version 2.93.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="Expressif.OpenLineage" Version="2.93.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Expressif.OpenLineage" Version="2.93.0" />
                    
Directory.Packages.props
<PackageReference Include="Expressif.OpenLineage" />
                    
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 Expressif.OpenLineage --version 2.93.0
                    
#r "nuget: Expressif.OpenLineage, 2.93.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 Expressif.OpenLineage@2.93.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=Expressif.OpenLineage&version=2.93.0
                    
Install as a Cake Addin
#tool nuget:?package=Expressif.OpenLineage&version=2.93.0
                    
Install as a Cake Tool

Expressif.OpenLineage

Optional OpenLineage reporting through Expressif.Observability.IExpressionObserver. The integration uses OpenLineage 2.0.2 run events and works with compatible HTTP backends, including Marquez. The core Expressif project has no dependency on this package or on OpenLineage types.

using Expressif;
using Expressif.OpenLineage;

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(5) };
var transport = new HttpOpenLineageTransport(client, new Uri("http://localhost:5000"));
var observer = new OpenLineageObserver(new OpenLineageOptions
{
    Namespace = "my-application",
    JobName = "customers",
    Expression = "upper",
    Inputs = [OpenLineageDataset.FromFile("customers.json")],
    Outputs = [OpenLineageDataset.FromFile("customers.ndjson")],
}, transport, exception => Console.Error.WriteLine(exception.Message));
var expression = new ExpressionFactory(observer: observer).Create("upper");
var value = expression.Evaluate("alice");

Each evaluation emits START and then COMPLETE or FAIL with the same unique run ID. Parse and bind scopes do not generate separate jobs. The custom expressif_expression job facet includes the original expression, Expressif assembly version, and SHA-256 hash of the expression's exact UTF-8 text. It uses the supported specification's extensible BaseFacet schema.

Provide datasets only when their identities are known. File datasets use the file URI authority as namespace and its absolute escaped path as name. No datasets are inferred from values or streams. Options and dataset lists are snapshotted when the observer is constructed. Transports shared across evaluations must be safe for concurrent use; the HTTP transport is.

For a larger execution that includes lazy enumeration, serialization, or writing an output, use the same observer's Begin(ExpressionObservationStage.Evaluate) scope around that work and call Complete() only once all work succeeds, or Fail(exception) on failure. Disposing an unfinished scope emits FAIL. An ExpressionFactory evaluation scope ends when Evaluate returns; it does not track later consumption of a lazy result. The CLI scopes cover the full command, including input enumeration and output serialization for run and evaluate.

HTTP delivery is synchronous. It posts JSON to api/v1/lineage appended to the base URL, with an optional relative endpoint override and Bearer API key. The caller owns the HTTP client and chooses its timeout. Delivery failures invoke the optional diagnostic callback without changing the expression result or exception. Delivery is best effort; failed requests are not retried.

See CLI configuration for environment settings.

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

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
2.93.0 37 9/19/2026
2.92.0 37 9/18/2026
2.91.0 41 9/18/2026
2.90.0 33 9/18/2026
2.89.1 38 9/18/2026
2.89.0 36 9/18/2026