Hsu.Formats.Abstractions
2026.5.7
See the version list below for details.
dotnet add package Hsu.Formats.Abstractions --version 2026.5.7
NuGet\Install-Package Hsu.Formats.Abstractions -Version 2026.5.7
<PackageReference Include="Hsu.Formats.Abstractions" Version="2026.5.7" />
<PackageVersion Include="Hsu.Formats.Abstractions" Version="2026.5.7" />
<PackageReference Include="Hsu.Formats.Abstractions" />
paket add Hsu.Formats.Abstractions --version 2026.5.7
#r "nuget: Hsu.Formats.Abstractions, 2026.5.7"
#:package Hsu.Formats.Abstractions@2026.5.7
#addin nuget:?package=Hsu.Formats.Abstractions&version=2026.5.7
#tool nuget:?package=Hsu.Formats.Abstractions&version=2026.5.7
Hsu.Formats.Abstractions
Core abstractions for the Hsu.Formats library — interfaces, domain marker interfaces, and exceptions shared by all format packages.
Features
IFormatParser—CanParse(Stream)+Parse(Stream)contract for all parsersIFilePathParser— extended parser that resolves relative/includedirectivesIFormatModel— marker interface implemented by every parsed modelIMemoryImage— memory-image contract (IReadOnlyList<MemorySegment>) for firmware formatsMemorySegment— base address + rawbyte[]data blockIFormatConverter<TSource, TTarget>— strongly-typed conversion contract- Domain markers:
ITraceLog,INetworkDescription,ICalibrationDescription,IDiagnosticDescription FormatParseException/FormatConversionException— structured exceptions
Usage
Implement a parser
using Hsu.Formats;
public class MyParser : IFormatParser
{
public bool CanParse(Stream stream)
{
// probe stream header without consuming it
var peek = new byte[4];
int n = stream.Read(peek, 0, peek.Length);
stream.Seek(-n, SeekOrigin.Current);
return n >= 2 && peek[0] == 0xCA && peek[1] == 0xFE;
}
public IFormatModel Parse(Stream stream)
{
// read and return your model
throw new NotImplementedException();
}
}
Implement a converter
using Hsu.Formats;
public class MyConverter : IFormatConverter<SourceModel, TargetModel>
{
public bool CanConvert() => true;
public bool CanConvert(Type source, Type target) =>
source == typeof(SourceModel) && target == typeof(TargetModel);
public TargetModel Convert(SourceModel source)
{
// transform source → target
throw new NotImplementedException();
}
public object Convert(object source) => Convert((SourceModel)source);
}
| Product | Versions 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 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 was computed. 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 was computed. 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. |
| .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. |
-
.NETStandard 2.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Hsu.Formats.Abstractions:
| Package | Downloads |
|---|---|
|
Hsu.Formats.Trace
Trace/log and Ethernet capture format support for Hsu.Formats: ASC, BLF, TRC, PCAP, and PCAPNG parsers, models, and writers. |
|
|
Hsu.Formats.Firmware
Firmware format support for Hsu.Formats: BIN, HEX, S19, ELF, MOT, and VBF parsers, models, and writers. |
|
|
Hsu.Formats.Dataset
Dataset and calibration format support for Hsu.Formats: A2L, DBC, ODX, and AUTOSAR XML (ARXML) parsers, models, and writers. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.5.11-preview.100100 | 74 | 5/11/2026 |
| 2026.5.7 | 311 | 5/7/2026 |
| 2026.4.20 | 350 | 4/20/2026 |