Lua中使用zlib库压缩字符串

可以看一下我的Github项目,使用项目中的lua_zlib.h文件压缩lua字符串。

  • 使用

    我使用的开发环境是cocos2d-x + lua开发,以我的项目为例,
    将lua_zlib.h文件加入项目中,在入口文件中包含该头文件并注册以便在lua中使用,注册如下:

    1
    luaL_requiref_(L, "zlib", luaopen_zlib, 1);

然后lua中就可以使用如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
local zip=require("zlib")     
local v,mv,pv=zip.version()
print(v .. " " .. mv .. " " .. pv)
local compress=zip.deflate()
local uncompress=zip.inflate()

-- 压缩字符串
local deflated, eof, bytes_in,bytes_out =compress("asdasdasdasdasdasdasdasdasd", 'finish')
print(deflated)
print(eof)
print(bytes_in)
print(bytes_out)

-- 解压字符串
local uss,ret,getin,getout=uncompress(deflated)
print(uss)
print(ret)
print(getin)
print(getout)

‘finish’为压缩选项,有 “none”, “sync”, “full”, “finish”, NULL,几种类型。