| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- --[[
- @module miniz_app
- @summary miniz_app应用功能模块
- @version 1.0
- @date 2025.10.28
- @author 沈园园
- @usage
- 本文件为miniz应用功能模块,核心业务逻辑为:
- 1、如何对数据压缩解压;
- 本文件没有对外接口,直接在main.lua中require "miniz_app"就可以加载运行;
- ]]
- local function miniz_task_func()
- -- 压缩过的字符串, 为了方便演示, 这里用了base64编码
- -- miniz能解压标准zlib数据流
- -- 将字符串进行base64解码
- local b64str = "eAEFQIGNwyAMXOUm+E2+OzjhCCiOjYyhyvbVR7K7IR0l+iau8G82eIW5jXVoPzF5pse/B8FaPXLiWTNxEMsKI+WmIR0l+iayEY2i2V4UbqqPh5bwimyEuY11aD8xeaYHxAquvom6VDFUXqQjG1Fek6efCFfCK0b0LUnQMjiCxhUT05GNL75dFUWCSMcjN3EE5c4Wvq42/36R41fa"
- local str = b64str:fromBase64()
- -- 快速解压
- local dstr = miniz.uncompress(str)
- -- 压缩过的数据长度 156
- -- 解压后的数据长度,即原始数据的长度 235
- log.info("miniz", "压缩过的数据长度: ", #str, "解压后的数据长度:", #dstr)
-
- -- 演示压缩解压
- local ostr = "abcd1234567890efghijklmnopqrstuvwxyzabcd1234567890efghijklmnopqrstuvwxyzabcd1234567890efghijklmnopqrstuvwxyz"
- log.info("压缩前的字符串:", #ostr, ostr)
- -- 压缩字符串
- local zstr = miniz.compress(ostr)
- log.info("压缩后的字符串:",#zstr, zstr:toHex())
- -- 解压字符串
- local lstr = miniz.uncompress(zstr)
- log.info("解压后的字符串:", #lstr, lstr)
-
- -- 演示从文件读取2K数据压缩
- local ostr = io.readFile("/luadb/test.txt")
- local zstr = miniz.compress(ostr)
- if zstr then
- log.info("miniz", "压缩前的数据长度: ", #ostr, "压缩后的数据长度: ", #zstr)
- end
- end
- --创建一个task,并且运行task的主函数miniz_task_func
- sys.taskInit(miniz_task_func)
|