Tethys.SPDX.Writer 2.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Tethys.SPDX.Writer --version 2.0.0                
NuGet\Install-Package Tethys.SPDX.Writer -Version 2.0.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="Tethys.SPDX.Writer" Version="2.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tethys.SPDX.Writer --version 2.0.0                
#r "nuget: Tethys.SPDX.Writer, 2.0.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.
// Install Tethys.SPDX.Writer as a Cake Addin
#addin nuget:?package=Tethys.SPDX.Writer&version=2.0.0

// Install Tethys.SPDX.Writer as a Cake Tool
#tool nuget:?package=Tethys.SPDX.Writer&version=2.0.0                

Tethys.SPDX

License Build status Nuget REUSE status SBOM

The Software Package Data Exchange (SPDX) is an open standard for describing a software bill of material. SPDX focuses especially on licensing and copyright imformation.

License and copyright scanners like FOSSology for example use this standard to provide their scan results.

Having a format to describe all the different scenarios of license findings, license relations, and copyright findings is not trivial, so SPDX can get quite complex.

The libraries in this project support two tasks:

  • load the SPDX license list and provide it to .Net applications
  • parse SPDX files and provide the contained data in a .Net way

Please note that due to the complexity of the SPDX standard not all possible SPDX files can be parsed. But the libraries are open source, so feel free to enhance them.

Get Package

The following packages are available on NuGet:

This library has been influenced by the following GitHub projects:

SPDX

See https://spdx.org/licenses/ for more details on SPDX, the software package data exchange format, the SPDX license identifiers and matching guidelines.

The Software Package Data Exchange (SPDX) Specification https://spdx.github.io/spdx-spec/

XML data of all SPDX licenses:
https://github.com/spdx/license-list-XML

How to use Tethys.SPDX

The SPDX license information is not part of the libraries, you have to download it from SPDX License List and place it in a local folder.

Very simple demo

A minimal code snippet looks like this

var knownLicenseManager = new KnownLicenseManager();
knownLicenseManager.LoadSpdxSourceFiles(...SPDX license files...);
knownLicenseManager.LoadSpdxExceptionFiles(...SPDX license exception files...);

var reader = new RdfParser(knownLicenseManager);
var spdxDoc = reader.ReadFromFile(...SPDX file...);
...

Just run the demo application

dotnet run --project .\SpdxParserDemo\SpdxParserDemo.csproj .\TestData\yaml-0.1.0.zip.spdx2.rdf.xml

or

dotnet run --project .\SpdxParserDemo\SpdxParserDemo.csproj .\TestData\SPDXJSONExample-v2.3.spdx.json

Build

Requisites

  • Visual Studio 2022
  • NuGet access

Required NuGet Packages

  • Tethys.Logging, version 1.6.1
  • Newtonsoft.Json, version 13.0.3

Build Solution

Just use the basic dotnet command:

dotnet build

License

Tethys.SPDX is licensed under the Apache License, Version 2.0.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos 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.1.2 154 5/8/2024
2.1.1 131 4/7/2024
2.1.0 137 3/24/2024
2.0.0 155 2/21/2024