Adam Hathcock
5a319ffe2c
create/open always has to be async for detection
2026-02-12 10:18:43 +00:00
Adam Hathcock
2e364ac0eb
cleaned up writing and added more validation and tests
2026-02-10 10:48:42 +00:00
Adam Hathcock
46e2ea8507
more async fixes
2026-02-01 09:38:46 +00:00
Adam Hathcock
b9ed2b09c1
fmt
2026-01-22 09:05:26 +00:00
Adam Hathcock
8df9232171
use extension where appropriate with more fixes
2026-01-21 16:57:25 +00:00
Adam Hathcock
884f0b702e
some grunt rar header async
2026-01-19 16:08:20 +00:00
Adam Hathcock
408d2e6663
Async add entry
2026-01-18 14:57:01 +00:00
Adam Hathcock
7b76858ae1
refactoring naming again
2026-01-15 11:41:30 +00:00
Adam Hathcock
a1a86cdde8
fmt
2026-01-13 14:29:10 +00:00
Adam Hathcock
0b8081f320
gzip fixes
2026-01-13 14:24:36 +00:00
Adam Hathcock
0b5371d986
more async fixing
2026-01-13 14:06:14 +00:00
Adam Hathcock
0502ff545e
test fixes and fmt
2026-01-12 15:01:29 +00:00
Adam Hathcock
fce4a96718
make Writable interfaces for archive
2026-01-12 14:57:13 +00:00
Adam Hathcock
38203fb950
Fix async reader variable types - Remove double await on ReaderFactory.OpenAsync and use IAsyncReader
...
- Removed 'await' keyword before ReaderFactory.OpenAsync() calls since the method returns IAsyncReader directly (not Task)
- Changed ZipReader.Open() to ReaderFactory.OpenAsync() in Zip64AsyncTests.ReadForwardOnlyAsync()
- Changed TarReader.Open() to ReaderFactory.OpenAsync() in TarReaderAsyncTests.Tar_BZip2_Entry_Stream_Async()
- Fixed EntryStream disposal from 'await using' to 'using' since EntryStream doesn't implement IAsyncDisposable
- These changes fix compilation errors where async methods were being called on IReader (synchronous) instead of IAsyncReader (asynchronous)
2026-01-12 14:14:46 +00:00
Adam Hathcock
c1f8580d89
Remove unnecessary ValueTask wrappers from async factory methods
...
Change return types from ValueTask<T> to direct interface types (IAsyncArchive, IAsyncReader, IWriter) for wrapper methods that don't perform async work. This eliminates unnecessary async state machine allocations while maintaining the same public API behavior.
Changes:
- Interface definitions: Updated IArchiveFactory, IMultiArchiveFactory, IReaderFactory, IWriterFactory
- Concrete factories: Updated archive factories (Zip, Tar, Rar, GZip, SevenZip) and reader-only factories (Ace, Arc, Arj)
- Static factory methods: Updated ReaderFactory, ArchiveFactory, WriterFactory to use new signatures
- Archive classes: Updated static OpenAsync methods in ZipArchive, TarArchive, RarArchive, SevenZipArchive, GZipArchive
- Supporting changes: Updated Factory.cs and async polyfills
Performance benefit: Reduced GC pressure by eliminating unnecessary state machine overhead for non-async wrapper methods.
2026-01-12 13:16:44 +00:00
Adam Hathcock
05ebf22009
Start using the interface to draw distinction between async and sync
2026-01-12 12:08:25 +00:00
Adam Hathcock
a35e65ee42
use ifdefs for creating files?
2026-01-08 16:52:23 +00:00
Adam Hathcock
17cd934b5b
use async methods where we can
2026-01-08 16:24:11 +00:00
Adam Hathcock
3747a27109
Task to ValueTask
2026-01-08 12:35:12 +00:00
Adam Hathcock
f21b982955
adds more async tests and overloads to make things writable and async
2025-10-27 10:31:10 +00:00