2584 Commits
Author SHA1 Message Date
Timofey Solomko 377344197b [swcomp] Implement --compress option for the lz4 command 2021-10-15 22:40:55 +03:00
Timofey Solomko 9176d2fa35 [LZ4] Implement block encoding 2021-10-15 22:28:10 +03:00
Timofey Solomko f6c23987c4 [LZ4] Fix incorrect truncation checks in block decoding 2021-10-15 20:39:28 +03:00
Timofey Solomko cac1d635b9 [BZip2] Change BurrowsWheeler and SuffixArray from classes to enums 2021-10-15 20:14:21 +03:00
Timofey Solomko 6c063cd522 [LZ4] Fix compilation issues on Swift 5.1-5.3 2021-10-02 18:23:26 +03:00
Timofey Solomko 134ba8fe9d [Tests] Add a number of basic tests for LZ4 compression 2021-10-02 15:24:39 +03:00
Timofey Solomko d5d0abeff2 [LZ4] Implement a no-compression version of LZ4 compression
Basically, the frame format with all features has been implemented.
2021-10-02 15:24:11 +03:00
Timofey Solomko 68e46728af [LZ4] Slightly optimize xxHash32 2021-10-02 13:49:29 +03:00
Timofey Solomko 932153541d Add xcode test plan 2021-10-02 12:55:26 +03:00
Timofey Solomko fc0dfdf43a [LZ4] Add an empty implementation for compression 2021-10-02 11:22:45 +03:00
Timofey Solomko f0f4e133d8 Upgrade xcode project compatiblity version to 11.0
We can do this since we are no longer going to support Swift 5.0.
2021-10-02 11:22:16 +03:00
Timofey Solomko 7afec17967 Update README instructions about tests 2021-10-02 11:17:27 +03:00
Timofey Solomko c0574c96e3 CI: reenable macos jobs
Let's cross our fingers, that the caching works...
2021-10-01 18:40:41 +03:00
Timofey Solomko 149190eda5 CI: temporarily disable all but one macos jobs 2021-10-01 18:37:58 +03:00
Timofey Solomko ddbbab37e1 CI: rework macos config to cache test files froms git lfs
This should help with git lfs github quota issues.
2021-10-01 18:37:30 +03:00
Timofey Solomko 54863ccd87 utils.py: replace prepare-workspace command with download-bbd-macos, rename install-macos to install-git-lfs-macos 2021-10-01 18:36:56 +03:00
Timofey Solomko 39999257b2 CI changes: remove swift 5.0 2021-10-01 14:42:36 +03:00
Timofey Solomko 17bd85ba5d [Tests] Add a test for multiple concatenated LZ4 frames 2021-10-01 14:41:16 +03:00
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 2603ca98ec [Tests] Add a test for LZ4 which has dictID 2021-09-27 10:45:54 +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 725a3b58bb [Tests] Add a test for LZ4 dictionary decompression 2021-09-26 19:52:01 +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 e321f4a49e [Tests] Add a test for LZ4 legacy frame with multiple blocks 2021-09-26 15:26:27 +03:00
Timofey Solomko 7440d3c95e [Tests] Add tests for LZ4 legacy frame format 2021-09-26 15:19:46 +03:00
Timofey Solomko 8e32397e7c [LZ4] Implement legacy frame processing 2021-09-26 15:18:57 +03:00
Timofey Solomko c6bf66fbad [Tests] Add a test for LZ4 with a skippable frame in the beginning 2021-09-26 14:37:50 +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 8715136094 [Tests] Add "bad file" tests for LZ4 2021-09-26 14:14:14 +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 f44fd90b2c [Tests] Add a test for LZ4 with dependent blocks 2021-09-26 13:33:32 +03:00
Timofey Solomko 0b2dd279a9 [LZ4] Implement dependent blocks 2021-09-26 13:32:32 +03:00
Timofey Solomko f27e0eef7c Add LZ4 to SPM package manifest 2021-09-26 12:55:20 +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 7fcd5a7554 [Tests] Add tests for xxHash32 2021-09-24 20:05:15 +03:00
Timofey Solomko 885d2e3828 [LZ4] Implement xxHash32 2021-09-24 20:04:36 +03:00