mirror of
https://github.com/SabreTools/SabreTools.IO.git
synced 2026-07-08 17:57:02 +00:00
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.IO.Meta` builds the normal Nuget package that is used by all other projects and includes all namespaces. `SabreTools.IO` builds to `SabreTools.IO.Common` to avoid overwriting issues on publish.
SabreTools.IO.Compression
This library contains 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 |