mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-02-03 21:23:38 +00:00
Async work #711
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @adamhathcock on GitHub (Oct 28, 2025).
Originally assigned to: @adamhathcock on GitHub.
Using AI, I'm converting things to have asynchronous overloads as well as tests for them.
Here's what I think I need to finish:
Stream Classes Needing Async Overloads
Summary
ReadAsyncoverloadWriteAsyncoverloadValidation Notes
This list excludes Stream classes where the
Writemethod throwsNotSupportedExceptionorNotImplementedException, as these are read-only streams that don't needWriteAsyncoverloads.Classes Needing ReadAsync
RarCryptoWrapper-src/SharpCompress/Common/Rar/RarCryptoWrapper.csFolderUnpackStream-src/SharpCompress/Common/SevenZip/ArchiveReader.csPkwareTraditionalCryptoStream-src/SharpCompress/Common/Zip/PkwareTraditionalCryptoStream.csWinzipAesCryptoStream-src/SharpCompress/Common/Zip/WinzipAesCryptoStream.csADCStream-src/SharpCompress/Compressors/ADC/ADCStream.csArcLzwStream-src/SharpCompress/Compressors/ArcLzw/ArcLzwStream.csBZip2Stream-src/SharpCompress/Compressors/BZip2/BZip2Stream.csCBZip2InputStream-src/SharpCompress/Compressors/BZip2/CBZip2InputStream.csCBZip2OutputStream-src/SharpCompress/Compressors/BZip2/CBZip2OutputStream.csExplodeStream-src/SharpCompress/Compressors/Explode/ExplodeStream.csBCJ2Filter-src/SharpCompress/Compressors/Filters/BCJ2Filter.csFilter-src/SharpCompress/Compressors/Filters/Filter.csAesDecoderStream-src/SharpCompress/Compressors/LZMA/AesDecoderStream.csBcj2DecoderStream-src/SharpCompress/Compressors/LZMA/Bcj2DecoderStream.csLZipStream-src/SharpCompress/Compressors/LZMA/LZipStream.csDecoder-src/SharpCompress/Compressors/LZMA/LzmaDecoder.csLzmaStream-src/SharpCompress/Compressors/LZMA/LzmaStream.csCrcBuilderStream-src/SharpCompress/Compressors/LZMA/Utilites/CrcBuilderStream.csCrcCheckStream-src/SharpCompress/Compressors/LZMA/Utilites/CrcCheckStream.csLzwStream-src/SharpCompress/Compressors/Lzw/LzwStream.csPpmdStream-src/SharpCompress/Compressors/PPMd/PpmdStream.csRunLength90Stream-src/SharpCompress/Compressors/RLE90/RunLength90Stream.csMultiVolumeReadOnlyStream-src/SharpCompress/Compressors/Rar/MultiVolumeReadOnlyStream.csRarBLAKE2spStream-src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.csRarCrcStream-src/SharpCompress/Compressors/Rar/RarCrcStream.csRarStream-src/SharpCompress/Compressors/Rar/RarStream.csReduceStream-src/SharpCompress/Compressors/Reduce/ReduceStream.csShrinkStream-src/SharpCompress/Compressors/Shrink/ShrinkStream.csSqueezeStream-src/SharpCompress/Compressors/Squeezed/SqueezedStream.csXZBlock-src/SharpCompress/Compressors/Xz/XZBlock.csXZStream-src/SharpCompress/Compressors/Xz/XZStream.csCrc32Stream-src/SharpCompress/Crypto/Crc32Stream.csBufferedSubStream-src/SharpCompress/IO/BufferedSubStream.csDataDescriptorStream-src/SharpCompress/IO/DataDescriptorStream.csListeningStream-src/SharpCompress/IO/ListeningStream.csZipWriter-src/SharpCompress/Writers/Zip/ZipWriter.csClasses Needing WriteAsync
FolderUnpackStream-src/SharpCompress/Common/SevenZip/ArchiveReader.csPkwareTraditionalCryptoStream-src/SharpCompress/Common/Zip/PkwareTraditionalCryptoStream.csBZip2Stream-src/SharpCompress/Compressors/BZip2/BZip2Stream.csCBZip2InputStream-src/SharpCompress/Compressors/BZip2/CBZip2InputStream.csCBZip2OutputStream-src/SharpCompress/Compressors/BZip2/CBZip2OutputStream.csDeflate64Stream-src/SharpCompress/Compressors/Deflate64/Deflate64Stream.csFilter-src/SharpCompress/Compressors/Filters/Filter.csLZipStream-src/SharpCompress/Compressors/LZMA/LZipStream.csDecoder-src/SharpCompress/Compressors/LZMA/LzmaDecoder.csLzmaStream-src/SharpCompress/Compressors/LZMA/LzmaStream.csCrcBuilderStream-src/SharpCompress/Compressors/LZMA/Utilites/CrcBuilderStream.csCrcCheckStream-src/SharpCompress/Compressors/LZMA/Utilites/CrcCheckStream.csPpmdStream-src/SharpCompress/Compressors/PPMd/PpmdStream.csRarStream-src/SharpCompress/Compressors/Rar/RarStream.csCrc32Stream-src/SharpCompress/Crypto/Crc32Stream.csListeningStream-src/SharpCompress/IO/ListeningStream.csZipWriter-src/SharpCompress/Writers/Zip/ZipWriter.csPRs:
https://github.com/adamhathcock/sharpcompress/pull/978
https://github.com/adamhathcock/sharpcompress/pull/980
https://github.com/adamhathcock/sharpcompress/pull/991
Next is RAR/LZMA/BZip2
@rube200 commented on GitHub (Dec 18, 2025):
Hi, i am not sure if this the right place or do you prefer a new issue for this.
Currently i have been having a problem porting from "normal" extraction to async.
This the original code:
ìf i change any of those(or both) to async equivalent it always fails.
while (entries.MoveToNextEntry())=>while (await entries.MoveToNextEntryAsync(cancellationToken))or
entries.WriteEntryTo(fileStream);=>await entries.WriteEntryToAsync(fileStream, cancellationToken);I always receive the error:
or
Code condition:
@adamhathcock commented on GitHub (Dec 19, 2025):
I was just seeing this type of thing yesterday with 7zip files. I'll dig deeper
@adamhathcock commented on GitHub (Dec 19, 2025):
This should have been another issue but I think it's fixed with https://github.com/adamhathcock/sharpcompress/pull/1076
The LZMA implementation needs to be looked at harder