Commit Graph
1306 Commits
Author SHA1 Message Date
Timofey Solomko ba15f96312 [LZ4] Implement decompression of multiple concatenated frames 2021-10-01 14:41:16 +03:00
Timofey Solomko 86c31f7462 [swcomp] Add options to lz4 command to support dictionary decompression 2021-09-27 14:29:30 +03:00
Timofey Solomko 8e31f60b10 [LZ4] Check that dictionary is supplied if dictID is present in the frame 2021-09-27 10:46:27 +03:00
Timofey Solomko 4df0d5feb2 [LZ4] Change dictionaryID type to UInt32?
This allows us to verify the value on type level, instead of by using the precondition. It is also okay to use UInt32 instead of Int ("currency type"), since this API is supposed to be used by advanced users only.
2021-09-27 10:43:26 +03:00
Timofey Solomko 4bc7d37d7d [LZ4] Implement dictionary decompression 2021-09-26 19:49:35 +03:00
Timofey Solomko d8f7b8a8f5 [swcomp] Add benchmark command for LZ4 decompression 2021-09-26 16:06:09 +03:00
Timofey Solomko 8b0715b5a2 [swcomp] Add lz4 command 2021-09-26 16:03:56 +03:00
Timofey Solomko 8f1a1e0517 [Tests] Add tests for LZ4 frames with various block sizes 2021-09-26 15:55:36 +03:00
Timofey Solomko 8e32397e7c [LZ4] Implement legacy frame processing 2021-09-26 15:18:57 +03:00
Timofey Solomko d430e939f8 [LZ4] Implement skipping of skippable frames 2021-09-26 14:37:31 +03:00
Timofey Solomko cfe0416547 [LZ4] Reorganize implementation to support other frame types 2021-09-26 14:24:59 +03:00
Timofey Solomko 490d5ad816 Make DataError conform to Equatable 2021-09-26 14:03:38 +03:00
Timofey Solomko cb89e77857 [LZ4] Add truncation checks in block processing 2021-09-26 13:52:34 +03:00
Timofey Solomko c4946a00a3 [LZ4] Add checks for end of block restrictions 2021-09-26 13:43:47 +03:00
Timofey Solomko 0b2dd279a9 [LZ4] Implement dependent blocks 2021-09-26 13:32:32 +03:00
Timofey Solomko c6addda952 [LZ4] Implement decoding of independent blocks 2021-09-25 22:56:51 +03:00
Timofey Solomko 39d36a6805 [LZ4] Implement block loop and some checks for truncated data 2021-09-25 21:44:53 +03:00
Timofey Solomko bb39e6e36d Remove DataError.encrypted
I think, this case is covered by DataError.unsupportedFeature, and we don't want redundant cases, since we're trying to minimize the amount of different error types.
2021-09-25 15:50:21 +03:00
Timofey Solomko 2daf285539 [LZ4] Implement content checks 2021-09-24 20:55:39 +03:00
Timofey Solomko a233ec8d08 [LZ4] Skip magic number when computing header checksum 2021-09-24 20:41:39 +03:00
Timofey Solomko c2278f781f [LZ4] Fix issues related to data slicing in xxHash32 2021-09-24 20:41:19 +03:00
Timofey Solomko 9e14fa159f [XZ] Make rotation operator fileprivate and simplify its implementation 2021-09-24 20:05:42 +03:00
Timofey Solomko 885d2e3828 [LZ4] Implement xxHash32 2021-09-24 20:04:36 +03:00
Timofey Solomko c8b4020a9b [LZ4] Implement Frame Descriptor processing 2021-09-24 18:55:41 +03:00
Timofey Solomko 3cb6cac20b Add two more cases to DataError 2021-09-24 18:55:31 +03:00
Timofey Solomko 46590ad631 [LZ4] Add an empty implementation of xxHash-32 2021-09-24 18:55:28 +03:00
Timofey Solomko de4fcb29cf [LZ4] Add an empty implementation of LZ4 2021-09-23 21:50:35 +03:00
Timofey Solomko 135f4c3bcd Add DataError enum
This enum will be used going forward instead of algorithm-specific error enums.
2021-09-23 21:46:30 +03:00
Timofey Solomko 2efdb3ef8c Prepare for 4.6.1 release 2021-09-21 13:29:03 +03:00
Timofey Solomko 7c6c98b3a3 [ZIP] Remove unused import 2021-09-20 12:00:12 +03:00
Timofey Solomko 86a9caf337 [ZIP] Unify the code for finding CP437 enconding 2021-09-19 18:28:25 +03:00
Timofey Solomko aefacf3e16 [7-Zip] Change SevenZipProperty from class to struct 2021-09-19 17:17:57 +03:00
Timofey Solomko 791beca597 [LZMA2] Fix a crash when trying to process empty data
Now it throws LZMAError.rangeDecoderInitError instead.
2021-09-19 15:49:09 +03:00
Timofey Solomko 15a99d1448 [swcomp] Replace ContainerCommand.Entry with ContainerType 2021-09-19 15:15:55 +03:00
Timofey Solomko 19c788eb30 [swcomp] Output uncertainty of the bench speed using avg speed units 2021-09-13 17:33:09 +03:00
Timofey Solomko d7824df50c [swcomp] Move most bench commands into BenchmarkGroup file 2021-09-13 17:32:16 +03:00
Timofey Solomko 3eed2595be [swcomp] Output results as a speed 2021-09-12 23:50:46 +03:00
Timofey Solomko 03af95fb96 [swcomp] Add CreateTar benchmarking command 2021-09-12 19:12:27 +03:00
Timofey Solomko 322fe5aaa8 [swcomp] Move createEntries function into a separate extension 2021-09-12 19:12:04 +03:00
Timofey Solomko 2fa22370dc [swcomp] Generalize BenchmarkCommand protocol 2021-09-12 19:11:39 +03:00
Timofey Solomko 97323fa76a Prepare for 4.6.0 release 2021-08-04 15:50:55 +03:00
Timofey Solomko 0ac48ae704 [docs] Add documentation for TarContainer.create(from:force:) 2021-08-04 10:52:31 +03:00
Timofey Solomko 4e8be1d4fc [TAR] Remove TarEntryInfo.format in favor of working with header format directly 2021-08-03 18:39:03 +03:00
Timofey Solomko 925986b9ed [TAR] Add an assertion that verifies that base-256 encoding will always succeed 2021-07-31 12:23:37 +03:00
Timofey Solomko d335ed450e [TAR] Counters for special entries are now UInt to prevent overflowing into negatives 2021-07-31 12:23:00 +03:00
Timofey Solomko fe672f29dd Prepare for the test release of 4.6.0 2021-07-28 11:21:59 +03:00
Timofey Solomko 417ef7ded8 [TAR] Small code comments changes 2021-07-28 11:17:49 +03:00
Timofey Solomko e8e7bf1a72 [swcomp] Remove extra "try" in TarCommand 2021-07-28 11:14:32 +03:00
Timofey Solomko ff269e3ffe [ZIP] Rename ByteReader+Zip to LittleEndianByteReader+Zip 2021-07-27 16:19:06 +03:00
Timofey Solomko 2a8fe7d37f [TAR] Remove an extra check in TarContainer functions for very small files
This situation is already covered by the check in TarParser, which results in ParsingResult.truncated. In addition, we repurposed TarError.tooSmallFileIsPassed for this cases (updated documentation).
2021-07-26 21:37:00 +03:00