Commit Graph
26 Commits
Author SHA1 Message Date
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 6c063cd522 [LZ4] Fix compilation issues on Swift 5.1-5.3 2021-10-02 18:23:26 +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 fc0dfdf43a [LZ4] Add an empty implementation for compression 2021-10-02 11:22:45 +03:00
Timofey Solomko ba15f96312 [LZ4] Implement decompression of multiple concatenated frames 2021-10-01 14:41:16 +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 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 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 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 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 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