IS4.SFI 1.3.2

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
dotnet add package IS4.SFI --version 1.3.2
NuGet\Install-Package IS4.SFI -Version 1.3.2
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="IS4.SFI" Version="1.3.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add IS4.SFI --version 1.3.2
#r "nuget: IS4.SFI, 1.3.2"
#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 IS4.SFI as a Cake Addin
#addin nuget:?package=IS4.SFI&version=1.3.2

// Install IS4.SFI as a Cake Tool
#tool nuget:?package=IS4.SFI&version=1.3.2

Semantic File Inspector Base Library

This is the core library of the Semantic File Inspector, defining the common interfaces used in the other projects, as well as core analyzers and formats whose implementation does not depend on any external libraries outside of .NET.

It defines types from these namespaces:

IS4.SFI

This namespace contains various utility classes such as DataTools, TextTools, and UriTools, as well as classes containing extension methods intended to be used from all other components.

IS4.SFI.Analyzers

This namespace is intended to store all analyzers, in this project or others. In the core project, the only defined analyzers are for objects whose types are defined in .NET and are critical to the proper functioning of the software, such as FileAnalyzer, DataAnalyzer, etc.

IS4.SFI.Formats

This namespace is similar to the previous one but stores classes used for defining and parsing formats. It contains common interfaces and related components, while concrete formats are defined in their respective projects.

IS4.SFI.Services

This namespace contains specialized interfaces to be used for communication between formats and analyzers or other components in the solution, such as IFileNodeInfo, IFormatObject, ILinkedNode, IEncodingDetector, and similar, as well as their base implementations.

IS4.SFI.Tags

Tags, in this context, are usually small objects intended to be applied to existing objects via other means, providing extended description of them beyond what their original classes support.

In this project, the tags that are defined are IImageTag and IImageResourceTag, usually applied to images via the Image.Tag property, providing information about the origin of the image or the allowed operations.

IS4.SFI.Tools

This namespace hosts various specialized utility classes for general use and for I/O and XML operations. It also exposes the collection of built-in hash algorithms using the BuiltInHash class, or the EncodedUri, which should be used instead of the base Uri class in all situations to control its formatting.

IS4.SFI.Vocabulary

This namespace provides datatypes used for defining RDF vocabularies, such as ClassUri, PropertyUri, or LanguageCode, as well as storing the common vocabulary terms in the static classes Individuals, Classes, Properties, and Datatypes, to be used from code easily.

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 netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  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 (30)

Showing the top 5 NuGet packages that depend on IS4.SFI:

Package Downloads
IS4.SFI.Formats.XML The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Provides support for the XML format and sub-formats.

IS4.SFI.Formats.Modules The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Provides support for various MZ-based modules.

IS4.SFI.Formats.Images The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Provides support for various image formats.

IS4.SFI.RDF The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Provides RDF support for Semantic File Inspector-based applications.

IS4.SFI.Formats.Office The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Provides support for various office formats.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.2 206 3/10/2024
1.3.1 374 2/27/2024
1.3.0 633 2/18/2024
1.2.1 181 7/20/2023
1.2.0 642 7/15/2023
1.1.0 1,521 6/11/2023

1.3.2
-----

- `DataTools.GetStringKey` works for empty spans.


1.3.1
-----

- Added `IUniversalUriFormatter` for formatting nodes of any kind.
- Added the `xyz` namespace.
- Fixed stated dynamic dependencies in code.
- `FormatMemberId` attempts to format partially resolved members too.


1.3
-----

- Hash algorithms can now be configured to reject particular sources of input.
- Added `DeviceFileInfo` to support custom input sources.
- Added `IImage` as a common interface for images.
- Added `Namespace` to represent namespaces in code as an abstraction.
- `FileAnalyer` does not add `nfo:FileDataObject` to instances of `IDriveInfo`.
- A few more URI formatters and formatting options (UUIDs, QNames, CLR members, DocId-like).
- Non-critical exceptions resulting from analysis are analyzed and described, using the XPath Errors vocabulary.
- `TrySet` has a new `object?`-taking overload that accepts other reference types supported by `ILinkedNode`.
- (`Try`)`SetMembers` extension method for container membership properties.
- Reading from `XmlReaderState` now simply returns false instead of exception.
- An instance of `IEntityAnalyzer` is provided as a service to formats and analyzers.
- `DatatypeUri` can be converted back and forth from XML Schema datatypes.
- `PropertyUri` can be inverted, swapping subject and object when used.
- Faster term comparisons (but require vocabularies to match exactly).


1.2.1
-----

- Fixes to valuetype logging in `EntityAnalyzerProvider`.
- Fixed `SortedMultiTree.Remove` not removing the item properly.


1.2
-----

- Fixed `data:` URI escaping.
- Changed the way analyers are stored in the `EntityAnalyzerProvider`, to resolve issues with more complex hierarchies of derived analyzers.
- Added `SortedMultiTree` to implement this change, which maintains a tree-like collection of objects reachable using ordered keys.
- Added `SortedMultiSet` where values are compared using `IComparer` for order but using `IEqualityComparer` for equality, allowing muliple values with the same order key.
- Removed `GlobalObjectComparer` and `TypeInheritanceComparer`, as they were obsoleted by the methods above and no longer used.
- All non-critical formats and analyzers (XML, X.509, etc.) moved to their separate projects.
- All vocabulary items from XIS were added and prefixed with `Xml` in code to distinguish from items with similar names.