cosmopolitan/third_party/lz4cli
Justine Tunney b0df6c1fce
Implement proper time zone support
Cosmopolitan now supports 104 time zones. They're embedded inside any
binary that links the localtime() function. Doing so adds about 100kb
to the binary size. This change also gets time zones working properly
on Windows for the first time. It's not needed to have /etc/localtime
exist on Windows, since we can get this information from WIN32. We're
also now updated to the latest version of Paul Eggert's TZ library.
2024-05-04 23:06:37 -07:00
..
bench.c Implement proper time zone support 2024-05-04 23:06:37 -07:00
bench.h Reduce header complexity 2023-11-28 14:39:42 -08:00
BUILD.mk Implement proper time zone support 2024-05-04 23:06:37 -07:00
COPYING Release Cosmopolitan v3.3 2024-02-20 13:27:59 -08:00
datagen.c Reduce header complexity 2023-11-28 14:39:42 -08:00
datagen.h Reduce header complexity 2023-11-28 14:39:42 -08:00
lz4.1 Initial import 2020-06-15 07:18:57 -07:00
lz4.c Reduce header complexity 2023-11-28 14:39:42 -08:00
lz4.h Reduce header complexity 2023-11-28 14:39:42 -08:00
lz4cli.c Release Cosmopolitan v3.3 2024-02-20 13:27:59 -08:00
lz4frame.c Reduce header complexity 2023-11-28 14:39:42 -08:00
lz4frame.h Reduce header complexity 2023-11-28 14:39:42 -08:00
lz4hc.c Reduce header complexity 2023-11-28 14:39:42 -08:00
lz4hc.h Reduce header complexity 2023-11-28 14:39:42 -08:00
lz4io.c Reduce header complexity 2023-11-28 14:39:42 -08:00
lz4io.h Reduce header complexity 2023-11-28 14:39:42 -08:00
platform.h Reduce header complexity 2023-11-28 14:39:42 -08:00
README Initial import 2020-06-15 07:18:57 -07:00
util.h Implement proper time zone support 2024-05-04 23:06:37 -07:00
xxhash.c Reduce header complexity 2023-11-28 14:39:42 -08:00
xxhash.h Reduce header complexity 2023-11-28 14:39:42 -08:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

LZ4(1)                Cosmopolitan User Commands               -*-text-*-

𝐍𝐀𝐌𝐄
       𝗹𝘇𝟰 - lz4, unlz4, lz4cat - Compress or decompress .lz4 files

𝐒𝐘𝐍𝐎𝐏𝐒𝐈𝐒
       𝗹𝘇𝟰 [O̲P̲T̲I̲O̲N̲S̲] [-|INPUT-FILE] O̲U̲T̲P̲U̲T̲-̲F̲I̲L̲E̲

       𝘂𝗻𝗹𝘇𝟰 is equivalent to 𝗹𝘇𝟰 -𝗱

       𝗹𝘇𝟰𝗰𝗮𝘁 is equivalent to 𝗹𝘇𝟰 -𝗱𝗰𝗳𝗺

       When  writing scripts that need to decompress files, it is recom
       mended to always use the name 𝗹𝘇𝟰 with appropriate arguments (𝗹𝘇𝟰
       -𝗱 or 𝗹𝘇𝟰 -𝗱𝗰) instead of the names 𝘂𝗻𝗹𝘇𝟰 and 𝗹𝘇𝟰𝗰𝗮𝘁.

𝐃𝐄𝐒𝐂𝐑𝐈𝐏𝐓𝐈𝐎𝐍
       𝗹𝘇𝟰 is an extremely fast lossless compression algorithm, based on
       𝗯𝘆𝘁𝗲-𝗮𝗹𝗶𝗴𝗻𝗲𝗱 𝐋𝐙𝟳𝟳 family of compression scheme. 𝗹𝘇𝟰  offers  com
       pression  speeds  of  400  MB/s  per core, linearly scalable with
       multi-core CPUs. It features  an  extremely  fast  decoder,  with
       speed  in  multiple  GB/s  per core, typically reaching RAM speed
       limit on multi-core systems. The native file format is  the  .𝗹𝘇𝟰
       format.

   𝐃𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗯𝗲𝘁𝘄𝗲𝗲𝗻 𝗹𝘇𝟰 𝗮𝗻𝗱 𝗴𝘇𝗶𝗽
       𝗹𝘇𝟰  supports  a command line syntax similar b̲u̲t̲ n̲o̲t̲ i̲d̲e̲n̲t̲i̲c̲a̲l̲ to
       𝗴𝘇𝗶𝗽(𝟭). Differences are :

       ·   𝗹𝘇𝟰 preserves original files

       ·   𝗹𝘇𝟰 compresses a single file by default (see -𝗺 for  multiple
           files)

       ·   𝗹𝘇𝟰 𝗳𝗶𝗹𝗲𝟭 𝗳𝗶𝗹𝗲𝟮 means : compress file1 i̲n̲t̲o̲ file2

       ·   𝗹𝘇𝟰  𝗳𝗶𝗹𝗲.𝗹𝘇𝟰  will default to decompression (use -𝘇 to force
           compression)

       ·   𝗹𝘇𝟰 shows real-time notification statistics  during  compres
           sion  or  decompression  of  a single file (use -𝗾 to silence
           them)

       ·   If no destination name is provided, result is sent to  𝘀𝘁𝗱𝗼𝘂𝘁
           e̲x̲c̲e̲p̲t̲ i̲f̲ s̲t̲d̲o̲u̲t̲ i̲s̲ t̲h̲e̲ c̲o̲n̲s̲o̲l̲e̲.

       ·   If no destination name is provided, 𝗮𝗻𝗱 if 𝘀𝘁𝗱𝗼𝘂𝘁 is the con
           sole, 𝗳𝗶𝗹𝗲 is compressed into 𝗳𝗶𝗹𝗲.𝗹𝘇𝟰.

       ·   As a consequence of previous rules, note the following  exam
           ple  :  𝗹𝘇𝟰 𝗳𝗶𝗹𝗲 | 𝗰𝗼𝗻𝘀𝘂𝗺𝗲𝗿 sends compressed data to 𝗰𝗼𝗻𝘀𝘂𝗺𝗲𝗿
           through 𝘀𝘁𝗱𝗼𝘂𝘁, hence it does n̲o̲t̲ create 𝗳𝗶𝗹𝗲.𝗹𝘇𝟰.

       ·   Another consequence of those rules is that to run  𝗹𝘇𝟰  under
           𝗻𝗼𝗵𝘂𝗽,  you should provide a destination file: 𝗻𝗼𝗵𝘂𝗽 𝗹𝘇𝟰 𝗳𝗶𝗹𝗲
           𝗳𝗶𝗹𝗲.𝗹𝘇𝟰, because 𝗻𝗼𝗵𝘂𝗽 writes the specified command´s output
           to a file.



       Default  behaviors  can  be modified by opt-in commands, detailed
       below.

       ·   𝗹𝘇𝟰 -𝗺 makes it possible to provide multiple input filenames,
           which  will  be  compressed  into  files  using  suffix .𝗹𝘇𝟰.
           Progress notifications are also disabled by default  (use  -𝘃
           to  enable them). This mode has a behavior which more closely
           mimics 𝗴𝘇𝗶𝗽 command line, with the main remaining  difference
           being that source files are preserved by default.

       ·   Similarly, 𝗹𝘇𝟰 -𝗺 -𝗱 can decompress multiple *.𝗹𝘇𝟰 files.

       ·   It´s  possible  to opt-in to erase source files on successful
           compression or decompression, using --𝗿𝗺 command.

       ·   Consequently, 𝗹𝘇𝟰 -𝗺 --𝗿𝗺 behaves the same as 𝗴𝘇𝗶𝗽.



   𝐂𝗼𝗻𝗰𝗮𝘁𝗲𝗻𝗮𝘁𝗶𝗼𝗻 𝗼𝗳 .𝗹𝘇𝟰 𝗳𝗶𝗹𝗲𝘀
       It is possible to concatenate .𝗹𝘇𝟰 files as is. 𝗹𝘇𝟰  will  decom
       press such files as if they were a single .𝗹𝘇𝟰 file. For example:



           lz4 file1  > foo.lz4
           lz4 file2 >> foo.lz4



       Then 𝗹𝘇𝟰𝗰𝗮𝘁 𝗳𝗼𝗼.𝗹𝘇𝟰 is equivalent to 𝗰𝗮𝘁 𝗳𝗶𝗹𝗲𝟭 𝗳𝗶𝗹𝗲𝟮.

𝐎𝐏𝐓𝐈𝐎𝐍𝐒
   𝐒𝗵𝗼𝗿𝘁 𝗰𝗼𝗺𝗺𝗮𝗻𝗱𝘀 𝗰𝗼𝗻𝗰𝗮𝘁𝗲𝗻𝗮𝘁𝗶𝗼𝗻
       In  some cases, some options can be expressed using short command
       -𝘅 or long command --𝗹𝗼𝗻𝗴-𝘄𝗼𝗿𝗱. Short commands  can  be  concate
       nated  together.  For  example,  -𝗱 -𝗰 is equivalent to -𝗱𝗰. Long
       commands cannot be concatenated. They must be  clearly  separated
       by a space.

   𝐌𝘂𝗹𝘁𝗶𝗽𝗹𝗲 𝗰𝗼𝗺𝗺𝗮𝗻𝗱𝘀
       When multiple contradictory commands are issued on a same command
       line, only the latest one will be applied.

   𝐎𝗽𝗲𝗿𝗮𝘁𝗶𝗼𝗻 𝗺𝗼𝗱𝗲
       -𝘇 --𝗰𝗼𝗺𝗽𝗿𝗲𝘀𝘀
              Compress. This is the default operation mode when no oper
              ation mode option is specified, no other operation mode is
              implied from the command name (for example, 𝘂𝗻𝗹𝘇𝟰  implies
              --𝗱𝗲𝗰𝗼𝗺𝗽𝗿𝗲𝘀𝘀),  nor from the input file name (for example,
              a file extension .𝗹𝘇𝟰 implies --𝗱𝗲𝗰𝗼𝗺𝗽𝗿𝗲𝘀𝘀 by default). -𝘇
              can  also  be used to force compression of an already com
              pressed .𝗹𝘇𝟰 file.

       -𝗱 --𝗱𝗲𝗰𝗼𝗺𝗽𝗿𝗲𝘀𝘀 --𝘂𝗻𝗰𝗼𝗺𝗽𝗿𝗲𝘀𝘀
              Decompress. --𝗱𝗲𝗰𝗼𝗺𝗽𝗿𝗲𝘀𝘀 is  also  the  default  operation
              when the input filename has an .𝗹𝘇𝟰 extension.

       -𝘁 --𝘁𝗲𝘀𝘁
              Test  the  integrity  of compressed .𝗹𝘇𝟰 files. The decom
              pressed data  is  discarded.  No  files  are  created  nor
              removed.

       -𝗯#    Benchmark mode, using # compression level.

   𝐎𝗽𝗲𝗿𝗮𝘁𝗶𝗼𝗻 𝗺𝗼𝗱𝗶𝗳𝗶𝗲𝗿𝘀
       -#     Compression  level,  with  # being any value from 1 to 12.
              Higher values  trade  compression  speed  for  compression
              ratio. Values above 12 are considered the same as 12. Rec
              ommended values are 1 for fast compression (default),  and
              9  for  high compression. Speed/compression trade-off will
              vary depending on data to  compress.  Decompression  speed
              remains fast at all settings.

       -𝐃 𝗱𝗶𝗰𝘁𝗶𝗼𝗻𝗮𝗿𝘆𝐍𝗮𝗺𝗲
              Compress, decompress or benchmark using dictionary d̲i̲c̲t̲i̲o̲̲
              n̲a̲r̲y̲N̲a̲m̲e̲. Compression and decompression must use the  same
              dictionary  to be compatible. Using a different dictionary
              during decompression will either abort due  to  decompres
              sion error, or generate a checksum error.

       -𝗳 --[𝗻𝗼-]𝗳𝗼𝗿𝗰𝗲
              This option has several effects:

              If  the  target  file already exists, overwrite it without
              prompting.

              When used with --𝗱𝗲𝗰𝗼𝗺𝗽𝗿𝗲𝘀𝘀 and 𝗹𝘇𝟰 cannot  recognize  the
              type  of  the  source  file, copy the source file as is to
              standard output. This allows 𝗹𝘇𝟰𝗰𝗮𝘁  --𝗳𝗼𝗿𝗰𝗲  to  be  used
              like  𝗰𝗮𝘁 (𝟭) for files that have not been compressed with
              𝗹𝘇𝟰.

       -𝗰 --𝘀𝘁𝗱𝗼𝘂𝘁 --𝘁𝗼-𝘀𝘁𝗱𝗼𝘂𝘁
              Force write to standard output, even if it is the console.

       -𝗺 --𝗺𝘂𝗹𝘁𝗶𝗽𝗹𝗲
              Multiple  input  files.  Compressed  file  names  will  be
              appended  a  .𝗹𝘇𝟰 suffix. This mode also reduces notifica
              tion level. 𝗹𝘇𝟰 -𝗺 has a behavior equivalent  to  𝗴𝘇𝗶𝗽  -𝗸
              (it preserves source files by default).

       -𝗿     operate recursively on directories. This mode also sets -𝗺
              (multiple input files).

       -𝐁#    Block size [4-7](default : 7)
              -𝐁𝟰= 64KB ; -𝐁𝟱= 256KB ; -𝐁𝟲= 1MB ; -𝐁𝟳= 4MB

       -𝐁𝐃    Block Dependency  (improves  compression  ratio  on  small
              blocks)

       --𝗳𝗮𝘀𝘁[=#]
              switch  to  ultra-fast  compression  levels.  If =# is not
              present, it defaults to  𝟭.  The  higher  the  value,  the
              faster the compression speed, at the cost of some compres
              sion ratio. This setting overwrites compression  level  if
              one  was set previously. Similarly, if a compression level
              is set after --𝗳𝗮𝘀𝘁, it overrides it.

       --[𝗻𝗼-]𝗳𝗿𝗮𝗺𝗲-𝗰𝗿𝗰
              Select frame checksum (default:enabled)

       --[𝗻𝗼-]𝗰𝗼𝗻𝘁𝗲𝗻𝘁-𝘀𝗶𝘇𝗲
              Header includes original size (default:not present)
              Note : this option can only be activated when the original
              size  can  be  determined, hence for a file. It won´t work
              with unknown source size, such as stdin or pipe.

       --[𝗻𝗼-]𝘀𝗽𝗮𝗿𝘀𝗲
              Sparse mode support (default:enabled on file, disabled  on
              stdout)

       -𝗹     Use Legacy format (typically for Linux Kernel compression)
              Note : -𝗹 is not compatible with -𝗺 (--𝗺𝘂𝗹𝘁𝗶𝗽𝗹𝗲) nor -𝗿

   𝐎𝘁𝗵𝗲𝗿 𝗼𝗽𝘁𝗶𝗼𝗻𝘀
       -𝘃 --𝘃𝗲𝗿𝗯𝗼𝘀𝗲
              Verbose mode

       -𝗾 --𝗾𝘂𝗶𝗲𝘁
              Suppress  warnings and real-time statistics; specify twice
              to suppress errors too

       -𝗵 -𝐇 --𝗵𝗲𝗹𝗽
              Display help/long help and exit

       -𝐕 --𝘃𝗲𝗿𝘀𝗶𝗼𝗻
              Display Version number and exit

       -𝗸 --𝗸𝗲𝗲𝗽
              Preserve source files (default behavior)

       --𝗿𝗺   Delete source files on successful  compression  or  decom
              pression

       --     Treat all subsequent arguments as files

   𝐁𝗲𝗻𝗰𝗵𝗺𝗮𝗿𝗸 𝗺𝗼𝗱𝗲
       -𝗯#    Benchmark file(s), using # compression level

       -𝗲#    Benchmark  multiple  compression  levels,  from  b#  to e#
              (included)

       -𝗶#    Minimum evaluation time in seconds [1-9] (default : 3)

𝐁𝐔𝐆𝐒
       Report bugs at: https://github.com/lz4/lz4/issues

𝐀𝐔𝐓𝐇𝐎𝐑
       Yann Collet

lz4 1.8.3                       September 2018                          LZ4(1)