Timofey Solomko
273b6ed9e9
Remove redundant imports
2026-02-18 12:21:57 +08:00
Timofey Solomko
33341b690b
[LZ4] Code comments grammar and wording improvements
2026-02-03 01:17:21 +08:00
Timofey Solomko
ea9aaccfb9
Update copyright year to 2026
2026-01-31 15:30:24 +08:00
Timofey Solomko
ed66991cbd
Update copyright year to 2024
2024-01-11 16:57:04 +03:00
Timofey Solomko
43132fc39d
Update copyright year to 2023
2023-02-07 15:31:45 +02:00
Timofey Solomko
79295db930
Update copyright year to 2022
2022-01-08 15:02:59 +03:00
Timofey Solomko
10905dc588
[docs] Minor fixes to LZ4 documentation
2021-11-03 20:41:48 +03:00
Timofey Solomko
9f7efc9276
[docs] Add documentation for LZ4 compression functions
2021-11-03 20:31:08 +03:00
Timofey Solomko
e3ffb812b9
[docs] Add documentation for LZ4 decompression functions
2021-11-03 20:13:42 +03:00
Timofey Solomko
deeb02fb5c
[LZ4] Remove remaining TODOs
2021-10-23 21:14:44 +03:00
Timofey Solomko
04aa3bd034
[LZ4] Add comments about implementation
2021-10-23 21:04:21 +03:00
Timofey Solomko
6e920a4ecc
[LZ4] Fix compilation issues with swift pre-5.5
2021-10-22 23:56:54 +03:00
Timofey Solomko
f64c5264f8
[LZ4] Remove extra TODOs
2021-10-22 22:43:50 +03:00
Timofey Solomko
33fd3001a0
[LZ4] Don't use optionals for storing dictionary in encoder
2021-10-22 21:51:58 +03:00
Timofey Solomko
c1496428d5
[LZ4] Don't accept block sizes larger than 4MB in compression
...
This matches the behavior of the reference implementation and allows to remove a couple of additional checks.
2021-10-22 20:53:56 +03:00
Timofey Solomko
c2465fcd75
[LZ4] Verify in decoder that block size is not larger than max block size
2021-10-22 20:52:34 +03:00
Timofey Solomko
6d6a32b7ae
[LZ4] Produce output as an arrary when decoding blocks
...
This change significantly improves performance.
2021-10-22 19:40:17 +03:00
Timofey Solomko
e860b9d4a9
[LZ4] Slightly optimize match calculation in compression
2021-10-22 19:27:23 +03:00
Timofey Solomko
100002cf8f
[LZ4] Simplify removing dictionary from the output in decompression
2021-10-21 22:31:34 +03:00
Timofey Solomko
9e7faebf90
[LZ4] Don't use crc32 for matches identification
2021-10-21 22:31:00 +03:00
Timofey Solomko
acb041cbf4
[LZ4] Fix incorrect encoding of small inputs
2021-10-20 15:00:57 +03:00
Timofey Solomko
bb9574cefd
[LZ4] Fix incorrect checks for the location of the last match
2021-10-20 14:48:43 +03:00
Timofey Solomko
3a54c54ecc
[LZ4] Fix incorrect matching
...
We erroneously used match index as a cyclical index which was producing non well-formed/incorrect results in some rare cases.
2021-10-17 15:45:11 +03:00
Timofey Solomko
743b83e4cb
[LZ4] Add default values for dictionary and blockSize arguments of LZ4.compress
2021-10-17 15:45:11 +03:00
Timofey Solomko
b64c5b81e9
[LZ4] Fix more potential issues with indices when resetting dictionary in compression
2021-10-16 21:59:18 +03:00
Timofey Solomko
2491d77bfc
[LZ4] Fix incorrect usage of dictionaries in compression
...
Previously, the dictionary was effectively ignored, since it was never used to populate the table of matches. Additionally, we fixed another issue with dictionaries, which was hidden, because we never really used them.
2021-10-16 20:21:59 +03:00
Timofey Solomko
9915e8a1d7
[LZ4] Account for the min match length when checking for end-of-block condition
2021-10-16 19:31:58 +03:00
Timofey Solomko
dac1814c8d
[LZ4] Simplify last sequence creation
2021-10-16 16:26:41 +03:00
Timofey Solomko
20544178a0
[LZ4] Fix potential index issues when setting dictionary for block decoding
2021-10-16 16:25:58 +03:00
Timofey Solomko
be899bc355
[LZ4] Fix incorrect block checksums in case of incompressible blocks
2021-10-16 16:25:15 +03:00
Timofey Solomko
254fe0c848
[LZ4] Strictly check that the block is compressible
2021-10-16 16:24:36 +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
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