SabreTools.IO 1.7.0

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

SabreTools.IO

Build and Test

This library compries of I/O functionality used by other SabreTools projects.

Find the link to the Nuget package here.

Namespaces

Below are a list of the included namespaces and their overall utility.

SabreTools.IO

Generic helper classes that involve custom functionality and utility.

SabreTools.IO.Compression

Various compression implementations that are used across multiple projects. Most of the implementations are be ports of existing C and C++ code.

Supported Compressions
Compression Name Decompress Compress Notes
Blast Yes No
BZip2 Yes Yes Sourced from DotNetZip
Deflate Yes Yes Sourced from DotNetZip
LZ Yes No KWAJ, QBasic 4.5, and SZDD variants; KWAJ incomplete
LZX No No
MSZIP Yes No
Quantum Yes* No Partial implementation based on standalone archives; not working

Note: If something is marked with a * it means that it need testing.

External Libraries
Library Name Use
DotNetZip BZip2 and DEFLATE implementations; minor edits have been made
ZLibPort Adds zlib code for internal and external use; minor edits have been made

SabreTools.IO.Extensions

Extensions for BinaryReader, byte[], and Stream to help with reading and writing various data types. Some data types are locked behind .NET version support.

This namespace also contains other various extensions that help with common functionality and safe access.

SabreTools.IO.Logging

Logic for a logging system, including writing to console and textfile outputs. There are 4 possible log levels for logging statements to be invoked with. There is also a stopwatch implementation included for logging statements with automatic timespan tracking.

SabreTools.IO.Readers and SabreTools.IO.Writers

Reading and writing support for the following file types:

  • ClrMamePro-derived Metadata files
  • Standard and non-standard INI files
  • Separated-Value files (e.g. CSV, SSV, TSV)

For a generic INI implementation, see SabreTools.IO.IniFile.

SabreTools.IO.Streams

Custom Stream implementations that are required for specialized use:

  • ReadOnlyBitStream: A readonly stream implementation allowing bitwise reading
  • ReadOnlyCompositeStream: A readonly stream implementation that wraps multiple source streams in a set order

Releases

For the most recent stable build, download the latest release here: Releases Page

For the latest WIP build here: Rolling Release

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  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 is compatible.  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 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 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 is compatible. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net20 is compatible.  net35 is compatible.  net40 is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 is compatible.  net46 was computed.  net461 was computed.  net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 is compatible.  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 (9)

Showing the top 5 NuGet packages that depend on SabreTools.IO:

Package Downloads
SabreTools.Serialization

Serialization and deserialization helpers for various types

UnshieldSharp

Port of Unshield and unshieldv3 to C#

WiseUnpacker

Wise installer unpacker based on E_WISE and HWUN

SabreTools.Compression

Clean compression implementations

SabreTools.ASN1

Serialization and deserialization helpers for various types

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on SabreTools.IO:

Repository Stars
SabreTools/SabreTools
DAT management tool with advanced editing and sorting features
SabreTools/BinaryObjectScanner
C# protection, packer, and archive scanning library
Version Downloads Last Updated
1.7.0 442 7/24/2025
1.6.3 393 5/12/2025
1.6.2 2,216 12/16/2024
1.6.1 2,462 11/30/2024
1.6.0 2,505 11/26/2024
1.5.1 3,806 11/16/2024
1.5.0 849 11/13/2024
1.4.13 3,233 10/24/2024
1.4.12 2,562 10/1/2024
1.4.11 5,127 5/13/2024
1.4.10 442 5/7/2024
1.4.9 233 5/7/2024
1.4.8 406 4/28/2024
1.4.7 154 4/28/2024
1.4.6 199 4/28/2024
1.4.5 820 4/27/2024 1.4.5 is deprecated because it has critical bugs.
1.4.0 5,092 4/23/2024
1.3.7 422 4/18/2024
1.3.6 572 4/17/2024
1.3.5 202 4/17/2024
1.3.4 315 4/16/2024
1.3.3 1,035 4/2/2024
1.3.2 1,884 3/12/2024
1.3.1 1,403 3/5/2024
1.3.0 2,762 11/21/2023
1.2.0 395 11/14/2023
1.1.1 958 9/8/2023
1.1.0 191 9/8/2023