1
0
Fork
You've already forked lua-miniz
0
The single C source file zlib-replacement library for Lua https://luarocks.org/modules/leso-kn/lua-miniz
  • C 99.2%
  • Lua 0.8%
Find a file
2025年08月19日 11:33:09 +02:00
miniz Add :rawfd() method 2025年07月23日 17:32:15 +02:00
rockspecs Release v0.2.0 2025年07月23日 17:34:12 +02:00
test Add :rawfd() method 2025年07月23日 17:32:15 +02:00
.gitignore Update .gitignore 2025年07月23日 13:48:00 +02:00
LICENSE Add license 2025年07月23日 11:48:40 +02:00
lua-miniz-scm-0.rockspec Add rockspec 2025年07月23日 13:53:45 +02:00
README.txt Fix fork origin url in readme 2025年08月19日 11:33:09 +02:00
test.lua Add :rawfd() method 2025年07月23日 17:32:15 +02:00

lua-miniz - Lua module for miniz support
 *
 * This repository is a fork of https://github.com/starwing/lua-miniz
 *
 * Changes:
 *
 * - Reduced to miniz functionality without the xslx module
 * - Luarocks packaging
 * - Raw access to internal file-descriptor (`za:rawfd()`)
 *
This module add deflate/inflate and zip file operations support to Lua
language. some code from luvit's miniz module, thanks for that work!
license:
This module has the same license with Lua (the Lua license here[1]).
note that the modified version of miniz.c has its own license (see miniz.c file).
[1]: https://www.lua.org/license.html
build:
use your fabourite compiler to build lminiz.c and miniz.c, get miniz.dll
or miniz.so
usage:
local miniz = require "miniz"
functions:
miniz.adler32([string[, prev: number]]) -> number
miniz.crc32([string[, prev: number]]) -> number
 calculate adler32 and crc32 checksum for string. without arguments, give a
 initialize checksum.
 local a = miniz.crc32("hello")
 local b = miniz.crc32("world", a)
 -- a is the checksum of "hello", and b is the checksum of "helloworld"
miniz.compress(string[, level: number[, window_size: number]]) -> [string]
miniz.decompress(string[, window_bits: number]) -> [string]
 compress/decompress string, use given flags.
 when window_size and window_bits are negature, the compress result will
 not include a zlib-compatible header.
miniz.compress([level: number[, window_size: number]]) -> [stream]
miniz.decompress([window_bits: number]) -> [stream]
 create a new compress/decompress stream,
 when compress:
 output, eof, input_bytes, output_bytes = stream(string[, flush])
 where flush are "sync", "full" or "finish"
 when decompress:
 output, eof, input_bytes, output_bytes = stream(string)
 same as lua-zlib module.
miniz.zip_read_file(filename: string[, flags: number]) -> [miniz.ZipReader]
miniz.zip_read_string(content: string[, flags: number]) -> [miniz.ZipReader]
 read a zip from file (given filename) or content string.
 flags: (from miniz.c)
	0x100: case sensitive file name in zip file.
	0x200: ignore path of file in zip.
	0x400: file is compressed data.
	0x800: do not sort central directory in zip file.
miniz.zip_write_file(filename: string[, reserved: number]) -> miniz.ZipWriter
miniz.zip_write_string([reserved: number[, init_size: number]]) -> miniz.ZipWriter
 write files to a zip file or a string.
 reserved is the reserved size before zip file itself. init_size is the
 first allocated memory for write file content. 
#ZipReader -> number
ZipReader:get_num_files() -> number
 get the file count in zip file.
ZipReader[idx:number] -> string
ZipReader:get_filename(idx:number) -> string
 get the idx-th file name in zip file.
ZipReader:close() -> boolean
 close zip file, return success or not.
ZipReader:locate_file(filename: string) -> number
 get the index from file name
ZipReader:stat(idx: number) -> table
 get file information from given index.
 returned table fields:
	index: index of file
	version_made_by: zip version
	version_needed: extract file need version
	bit_flag: flags of file
	method: compress method
	time: file time
	crc32: file crc32 checksum
	comp_size: compressed size
	uncomp_size: uncompressed size
	internal_attr: internal attribute
	external_attr: external attribute
	filename: filename
	comment: comment
ZipReader:is_file_a_directory(idx: number) -> boolean
 return whether given idx of file is a directory.
ZipReader:get_offset() -> number
 get the start offset of zip file in given file/string.
ZipReader:extract(idx: number[, flags: number]) -> [string]
ZipReader:extract(filename: string[, flags: number]) -> [string]
 extract a file from zip. flags see miniz.zip_read_file()
ZipWriter:close() -> boolean
 close a zip file
ZipWriter:add_string(path: string, content: string[, comment: string[, flags: number]]) -> ZipWriter
ZipWriter:add_file(path: string, filename: string[, comment: string[, flags: number]]) -> ZipWriter
 add a file to zip.
ZipWriter:add_from_zip_reader(src: miniz.ZipReader, idx: number) -> ZipWriter
 add a file from zip reader to zip.
ZipWriter:finalize() -> string
ZipWriter:finalize() -> ZipWriter
ZipWriter:finalize() -> nil, string
 finalize the write of zip. if zip writer is created from zip_write_string,
 then the result string is returned; if zip writer is created from
 zip_write_file, then ZipWriter itself is returned, otherwire a nil and a
 error message is returned.