Commit Graph

62 Commits

Author SHA1 Message Date
Adam Hathcock
366fa4ab34 Restart solid 7z decoders after failures and read mode changes 2026-10-22 09:11:14 +01:00
Adam Hathcock
2c29a6bfab Fix solid 7z cache positioning after partial entry reads 2026-10-22 08:22:48 +01:00
Adam Hathcock
b8e81bd3f5 Split ArchiveFactory into focused public entry points 2026-10-21 11:47:47 +01:00
Adam Hathcock
2463488de7 Merge remote-tracking branch 'origin/master' into feature/non-seekable-zip64-writing
# Conflicts:
#	src/SharpCompress/Factories/TarFactory.cs
#	src/SharpCompress/Readers/Tar/TarReader.Factory.cs
#	src/SharpCompress/Readers/Tar/TarReader.cs
#	tests/SharpCompress.Test/Streams/RarLifetimeTests.cs
#	tests/SharpCompress.Test/Streams/SevenZipLifetimeTests.cs
#	tests/SharpCompress.Test/Streams/TarLifetimeTests.cs
2026-10-20 11:41:45 +01:00
Adam Hathcock
714a27fd40 Fix RAR checksum handling for empty reads and checksum-free entries 2026-10-20 11:11:43 +01:00
Adam Hathcock
5efd391725 Merge remote-tracking branch 'origin/master' into perf/rar-profile-pooling 2026-10-20 11:07:23 +01:00
Adam Hathcock
14d77b671c Release pooled 7z decoder buffers across async and partial reads
Dispose cached folder decoders during async archive cleanup and scope temporary encoded-header decoders in both read paths. Release LZMA range-decoder input buffers on partial reads and failures while preserving borrowed source ownership.

Correct the synchronous extraction-reader benchmark and expand lifetime and checksum coverage. Document profiling showing async Archive allocations falling from 8.95 MiB to 0.70 MiB per extraction, with metadata-only allocations reduced by 70%.

Validation: 2,989 .NET 10 Release tests passed; all library targets, the performance project, and net48 test compilation succeeded. Formatting and whitespace checks passed.
2026-10-19 14:43:51 +01:00
Adam Hathcock
81879e9de4 Pool RAR Huffman scratch buffers and validate async checksums
Reuse unpacker-owned pooled scratch arrays for async RAR5 and RAR2 Huffman tables, preserving alphabet bounds and zeroed history tails. Match async Archive CRC32/BLAKE2sp verification to the synchronous path and dispose entry streams when initialization fails.

Add regression tests and profiling documentation showing approximately 3.13 MiB fewer managed allocations per 200 MiB extraction. Keep this change based directly on master without unrelated branch commits.

Validation: 2,983 .NET 10 Release tests passed, all six library targets built, net48 tests compiled, and formatting checks passed.
2026-10-19 14:10:30 +01:00
Adam Hathcock
cae625fc05 Support ZIP64 writing to non-seekable streams 2026-10-15 18:17:39 +01:00
Adam Hathcock
e58fcb23e5 Preserve async disposal across all supported frameworks 2026-10-13 12:57:14 +01:00
Adam Hathcock
d431c80b38 Fix WinZip AES authentication retry after cancellation 2026-10-13 12:23:24 +01:00
Adam Hathcock
a47e02e4cd Merge branch 'master' into adam/release-dependencies-and-async-stream-fixes 2026-10-13 11:40:46 +01:00
Adam Hathcock
1fb8ac1724 Merge remote-tracking branch 'origin/release'
# Conflicts:
#	src/SharpCompress/Compressors/LZMA/LzmaStream.Async.cs
#	src/SharpCompress/Compressors/LZMA/LzmaStream.cs
2026-10-13 11:39:15 +01:00
Adam Hathcock
1080969e51 Fix async writable entry streams and cross-framework disposal 2026-10-13 11:36:07 +01:00
Adam Hathcock
ba8d0f84b1 Merge remote-tracking branch 'origin/release'
# Conflicts:
#	src/SharpCompress/Common/GZip/GZipChecksumValidationStream.cs
#	src/SharpCompress/Common/Zip/WinzipAesCryptoStream.Async.cs
#	src/SharpCompress/Common/Zip/WinzipAesCryptoStream.cs
#	src/SharpCompress/Compressors/Deflate/ZlibBaseStream.cs
2026-10-13 11:00:17 +01:00
Adam Hathcock
bdb42df4dc Make raw LZMA setup and disposal exception-safe 2026-10-13 10:29:07 +01:00
Adam Hathcock
38e3222dc2 Release rewind buffers despite disposal failures and reject disposed reads 2026-10-13 10:26:09 +01:00
Adam Hathcock
c574364838 Fix pooled buffer ownership and exception-safe cleanup 2026-10-13 09:57:19 +01:00
Adam Hathcock
dcd2515598 Merge remote-tracking branch 'origin/release' into fix/1439-sevenzip-password-exceptions
# Conflicts:
#	docs/API.md
2026-10-12 17:10:32 +01:00
Adam Hathcock
a147a7bc29 Merge pull request #1442 from adamhathcock/fix/release-pr-1436-followups
pr 1436 followups
2026-10-12 17:05:28 +01:00
Adam Hathcock
69e1477ee6 Expose public exceptions for encrypted 7z decoding failures 2026-10-12 15:29:40 +01:00
Adam Hathcock
7d7983e0f4 Fix 7z encryption detection for streamless files 2026-10-12 15:29:40 +01:00
Adam Hathcock
7265047dd7 Verify WinZip AES authentication and reject truncated encrypted data 2026-10-10 15:40:34 +01:00
Adam Hathcock
9ba6d17b5d Validate 7z AES KDF limits before unsalted key derivation 2026-10-10 15:40:33 +01:00
Adam Hathcock
ab3ac18e98 Fix release review findings in RAR, GZip, and split ZIP parsing 2026-10-10 08:22:55 +01:00
Adam Hathcock
eab8154e3f Merge pull request #1436 from adamhathcock/release
Release to master
2026-10-09 15:24:05 +01:00
Adam Hathcock
915183320c added some review fixes 2026-10-05 10:48:34 +01:00
Adam Hathcock
b67a8a4ead Fix encrypted RAR5 archive comments 2026-10-02 13:33:55 +01:00
Iain
be0ed362d2 Fix the exception catches and ArchiveType.BZip2 in the API quick reference 2026-09-22 01:40:55 +01:00
Adam Hathcock
839df5f5d9 moved namespaces 2026-08-06 09:13:22 +01:00
Adam Hathcock
1ab599a21d Merge remote-tracking branch 'origin/master' into copilot/archiveinformation-show-archive-detail 2026-08-05 16:20:22 +01:00
Adam Hathcock
ea7d97fcee better zip streaming info 2026-08-05 16:20:08 +01:00
Adam Hathcock
f90ce7a511 Merge pull request #1408 from adamhathcock/release
Release to master
2026-08-05 16:18:15 +01:00
Adam Hathcock
513b6bec45 fixes SharpCompress TAR extraction overwrites files outside the extraction root when a SymbolicLinkHandler enables symlink chaining 2026-08-05 15:44:27 +01:00
Adam Hathcock
87f5616d1f Detect v Inspect is added. Detect is used only basic info but does not buffer as much as it can. 2026-08-04 11:45:13 +01:00
Adam Hathcock
858f5040df Merge remote-tracking branch 'origin/master' into copilot/archiveinformation-show-archive-detail 2026-08-04 10:29:51 +01:00
Julian Xhokaxhiu
55db16ecb3 Improve LZMA decoder using 7zip logics for modern dotnet
- Add opt-in Parallel decoding
- Add a new ASM-like decoder
- Add Unit tests for Parallel decoding
2026-08-03 02:50:30 +02:00
copilot-swe-agent[bot]
d301cb365f Add format-specific ArchiveInformation details 2026-07-28 16:45:31 +00:00
Adam Hathcock
b8a7cc18d9 intermediate commit 2026-06-24 16:27:57 +01:00
Adam Hathcock
760f7685f8 First pass of removing Compressed Tar Archive support. Compressed Tars should be done with TarReader only 2026-06-23 15:42:04 +01:00
Adam Hathcock
727d2a79f9 updates from review 2026-06-18 17:06:16 +01:00
Adam Hathcock
2866bfbd54 First pass with zip 2026-06-15 09:17:05 +01:00
Adam Hathcock
de6e2bfee2 Add WriterOptions.BufferSize property 2026-06-12 14:41:05 +01:00
Adam Hathcock
3a73cfe925 Add instance based extraction size instead of just static 2026-06-11 17:24:42 +01:00
Adam Hathcock
31fcb8526c add note about providers 2026-06-07 11:20:34 +01:00
Adam Hathcock
2c9f7650a0 updates docs for latest changes and ArchiveInfo 2026-06-06 15:50:49 +01:00
Copilot
da30b5c805 Fix incorrect code examples in docs for sync/async usage (#1280) 2026-04-10 17:47:33 +01:00
Adam Hathcock
3fb7e02653 update docs 2026-03-03 12:50:27 +00:00
Adam Hathcock
0910f20c90 renamed to ReaderOptions.ForFilePath 2026-03-03 12:40:58 +00:00
Adam Hathcock
ba1cd66336 First pass of moving extraction options back 2026-03-02 07:00:33 +00:00