650 Commits

Author SHA1 Message Date
Adam Hathcock
a2a1b2e8fd Expose SharpCompressStream to allow ringbuffer to be used on non-seekable streams 2026-02-14 10:16:01 +00:00
Adam Hathcock
18eb140017 Merge pull request #1197 from adamhathcock/adam/add-alternate-compressions
Add ability to have alternate compressions
2026-02-13 13:46:35 +00:00
Adam Hathcock
d138999445 adjust tests 2026-02-13 13:38:37 +00:00
Adam Hathcock
7cef629a06 add compiler flags 2026-02-13 12:46:48 +00:00
Adam Hathcock
76352df852 revamped and added SC stream tests 2026-02-13 12:44:12 +00:00
Adam Hathcock
39c9d68c4f Better usage of reader options 2026-02-13 11:00:53 +00:00
Adam Hathcock
da5cc69a06 fix up gzip encoding 2026-02-13 09:51:46 +00:00
Adam Hathcock
d667288a87 added async stream creation 2026-02-12 16:49:56 +00:00
copilot-swe-agent[bot]
ebb8f16e44 Fix CompressionType for WinZip AES encrypted entries
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-12 15:45:52 +00:00
Adam Hathcock
6931a78bed add async stream creation concept 2026-02-12 15:41:16 +00:00
Adam Hathcock
a92f82ef28 complete the usage of providers for detection and async 2026-02-12 15:09:21 +00:00
Adam Hathcock
0e72f5ad9d move providers 2026-02-12 14:30:55 +00:00
Adam Hathcock
0e2c33dd78 Merge branch 'master' into adam/add-alternate-compressions
# Conflicts:
#	tests/SharpCompress.Performance/Benchmarks/TarBenchmarks.cs
#	tests/SharpCompress.Performance/Benchmarks/ZipBenchmarks.cs
#	tests/SharpCompress.Performance/baseline-results.md
2026-02-12 14:20:01 +00:00
Adam Hathcock
51c42b89b4 OpenAsyncArchive has to be async 2026-02-12 10:26:18 +00:00
Adam Hathcock
5a319ffe2c create/open always has to be async for detection 2026-02-12 10:18:43 +00:00
Adam Hathcock
bae660381c TarArchive should use a compression method like TarReader 2026-02-12 09:48:06 +00:00
Adam Hathcock
b2f1d007c6 Clean up some code paths 2026-02-12 08:50:18 +00:00
Adam Hathcock
d0baa16502 Fix 7z seeking to be contigous in async too 2026-02-11 12:16:19 +00:00
Adam Hathcock
54a00e2614 some renamespacing 2026-02-10 16:25:21 +00:00
Adam Hathcock
19ed4d16db add fixes and benchmarks for system providers 2026-02-10 16:15:31 +00:00
Adam Hathcock
a3e3d9d0aa some clean up 2026-02-10 15:43:32 +00:00
Adam Hathcock
f0da1b3a93 Consolidate 2026-02-10 15:32:23 +00:00
Adam Hathcock
a9f2d3cf7f Merge remote-tracking branch 'origin/master' into adam/add-alternate-compressions
# Conflicts:
#	src/SharpCompress/Archives/GZip/GZipArchive.Async.cs
#	src/SharpCompress/Archives/GZip/GZipArchive.cs
#	src/SharpCompress/Archives/Zip/ZipArchive.Async.cs
#	src/SharpCompress/Archives/Zip/ZipArchive.cs
#	src/SharpCompress/Common/GZip/GZipEntry.Async.cs
#	src/SharpCompress/Common/GZip/GZipEntry.cs
#	src/SharpCompress/Common/Options/IReaderOptions.cs
#	src/SharpCompress/Readers/ReaderOptions.cs
#	src/SharpCompress/Readers/Zip/ZipReader.Async.cs
#	src/SharpCompress/Readers/Zip/ZipReader.cs
#	src/SharpCompress/Writers/GZip/GZipWriterOptions.cs
2026-02-10 15:21:13 +00:00
Adam Hathcock
960920993a Merge remote-tracking branch 'origin/master' into copilot/add-lzwreader-support
# Conflicts:
#	src/SharpCompress/Archives/GZip/GZipArchive.Factory.cs
#	src/SharpCompress/Archives/Tar/TarArchive.Factory.cs
#	src/SharpCompress/Archives/Zip/ZipArchive.Factory.cs
#	src/SharpCompress/Factories/GZipFactory.cs
#	src/SharpCompress/Factories/TarFactory.cs
#	src/SharpCompress/Factories/ZipFactory.cs
#	src/SharpCompress/Writers/IWriterFactory.cs
#	src/SharpCompress/Writers/WriterFactory.cs
2026-02-10 11:23:18 +00:00
Adam Hathcock
34f4314b86 Fix test 2026-02-10 11:16:39 +00:00
Adam Hathcock
bd99c1ab27 more fluent interface for options 2026-02-10 11:10:04 +00:00
Adam Hathcock
2e364ac0eb cleaned up writing and added more validation and tests 2026-02-10 10:48:42 +00:00
Adam Hathcock
cf0ad9b323 Merge remote-tracking branch 'origin/copilot/fix-rar-extraction-issues' into adam/cleanup-options 2026-02-09 17:30:50 +00:00
Adam Hathcock
04dd177f19 first pass of removing extraction options (folded into reader options) 2026-02-09 16:52:54 +00:00
copilot-swe-agent[bot]
1ba438d4c7 Add tests for plain .Z files (not tar-wrapped)
- Create test .Z file (large_test.txt.Z) using compress tool
- Add tests for direct LzwReader usage with plain .Z files
- Add tests for ReaderFactory detection of plain .Z files
- Improve filename derivation to unwrap SharpCompressStream
- Verify decompression works correctly for non-tar .Z files
- All 15 tests now passing

Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-09 14:56:54 +00:00
copilot-swe-agent[bot]
b3038010d9 Improve test documentation for tar.Z wrapper detection
- Rename test to clarify it tests tar wrapper detection
- Add detailed comment explaining why we use Tar.tar.Z (LzwStream compression not supported)
- Add assertions to verify ArchiveType.Tar and CompressionType.Lzw are correctly detected

Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-09 10:52:13 +00:00
Adam Hathcock
0048452efa Remove cancellation tokens for factory methods that aren't async 2026-02-09 09:59:49 +00:00
Adam Hathcock
c4a28e7cfb Update tests/SharpCompress.Test/Rar/RarArchiveAsyncTests.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-09 09:11:19 +00:00
Adam Hathcock
29197f2142 Update tests/SharpCompress.Test/Rar/RarArchiveTests.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-09 09:10:59 +00:00
copilot-swe-agent[bot]
d5cab8172b Address code review feedback: clarify file size comment
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-08 12:54:11 +00:00
copilot-swe-agent[bot]
4084b347d4 Fix RAR extraction to preserve subdirectory structure
- Set default ExtractFullPath=true in WriteToDirectoryInternal methods
- Add test case with sample RAR archive containing subdirectories
- Tests verify files are extracted to correct subdirectories, not root

Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-08 12:52:25 +00:00
copilot-swe-agent[bot]
1da178a4be Run code formatter on LzwReader implementation
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-07 10:30:00 +00:00
copilot-swe-agent[bot]
2b74807f5e Implement LzwReader support for .Z archives
- Add Lzw to ArchiveType enum
- Create Common/Lzw classes (LzwEntry, LzwVolume, LzwFilePart)
- Create Readers/Lzw/LzwReader with factory methods
- Create LzwFactory for integration with ReaderFactory
- Add comprehensive tests in Lzw test directory
- Update ReaderFactory error message to include Lzw format

Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-07 10:29:18 +00:00
Adam Hathcock
c48388ead2 adding alternate compressions 2026-02-06 21:07:32 +00:00
Adam Hathcock
cc6e410be8 some options 2026-02-06 15:16:45 +00:00
Adam Hathcock
0d81d7f243 Merge remote-tracking branch 'origin/master' into adam/cleanup 2026-02-04 15:05:12 +00:00
Adam Hathcock
642b8bddb8 fixed merge 2026-02-04 14:41:55 +00:00
Adam Hathcock
27f7221902 Merge remote-tracking branch 'origin/release' into adam/release-merge
# Conflicts:
#	Directory.Packages.props
#	build/packages.lock.json
#	src/SharpCompress/Common/Zip/WinzipAesEncryptionData.cs
#	src/SharpCompress/SharpCompress.csproj
#	src/SharpCompress/packages.lock.json
#	tests/SharpCompress.Performance/packages.lock.json
#	tests/SharpCompress.Test/SharpCompress.Test.csproj
#	tests/SharpCompress.Test/packages.lock.json
2026-02-04 14:35:40 +00:00
Adam Hathcock
57c0d00b37 rename Rewindable to SharpCompressStream 2026-02-04 14:12:04 +00:00
Adam Hathcock
43276b32b7 better sync over async 2026-02-04 13:25:05 +00:00
Adam Hathcock
94b275c41b Merge branch 'master' into adam/cleanup
# Conflicts:
#	src/SharpCompress/Common/EntryStream.cs
2026-02-04 12:55:46 +00:00
Adam Hathcock
ae4ae799b9 merge NonDisposingStream into RewindableStream 2026-02-04 12:40:39 +00:00
Adam Hathcock
b93ed79ef3 another sync over async 2026-02-04 11:26:47 +00:00
Adam Hathcock
c7b8021c2e remove extra debug 2026-02-04 10:08:50 +00:00
Adam Hathcock
1323c96bc8 remove more scoped namespaces 2026-02-04 09:25:48 +00:00