Enhanced TarFactory.IsArchive() to detect compressed tar formats (tar.bz2, tar.lz, etc.) by:
- Checking if stream contains tar header directly (for uncompressed)
- Testing each compression format to see if it contains a tar file
Enhanced TarFactory.Open() methods to decompress compressed tar files to MemoryStream for seekable access.
Current blockers:
- Some compression stream constructors (LZipStream) don't support leaveOpen parameter
- Stream disposal during detection phase causes issues with factory detection flow
Awaiting clarification from @adamhathcock on preferred architecture approach.
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
Clarify that the Archive API requires seekable streams, but decompression streams are not seekable, rather than stating that decompression requires random access.
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
Detect when users try to open tar.bz2, tar.lz, and other compressed tar formats with ArchiveFactory.Open() and provide clear guidance to use ReaderFactory.Open() instead. These formats require forward-only reading due to decompression stream limitations and cannot be used with the random-access Archive API.
Includes tests to verify the helpful error messages are shown.
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
- Updated target frameworks to net48;net8.0;net10.0 only
- Removed netstandard2.0 and net481 package conditions
- Updated conditional compilation to use NETFRAMEWORK only
- Updated package description and README
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
- Updated SharpCompress.csproj target frameworks from net48;net481;netstandard2.0;net6.0;net8.0 to net48;net481;netstandard2.0;net8.0;net10.0
- Updated test and build projects to use .NET 10
- Updated global.json to .NET 10 SDK
- Updated CI workflow to use .NET 10
- Fixed deprecated Rfc2898DeriveBytes constructor for .NET 10 (SYSLIB0060)
- Updated package description and README to reflect new supported frameworks
- Updated package versions for .NET 10 compatibility
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
None (stored) compression only requires version 10/20, not version 63.
Version 63 is specifically for advanced compression methods like LZMA,
PPMd, BZip2, and ZStandard.
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>