LuatOS-SOC接口文档(air780E)-- fastlz - FastLZ压缩

示例

复制代码
-- 与miniz库的差异
-- 内存需求量小很多, miniz库接近200k, fastlz只需要32k+原始数据大小
-- 压缩比, miniz的压缩比要好于fastlz

-- 准备好数据
local bigdata = "123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw"
-- 压缩之
local cdata = fastlz.compress(bigdata) 
-- lua 的 字符串相当于有长度的char[],可存放包括0x00的一切数据
if cdata then
    -- 检查压缩前后的数据大小
    log.info("fastlz", "before", #bigdata, "after", #cdata)
    log.info("fastlz", "cdata as hex", cdata:toHex())

    -- 解压, 得到原文
    local udata = fastlz.uncompress(cdata)
    log.info("fastlz", "udata", udata)
end

fastlz.compress(data, level)

快速压缩

参数

传入值类型 解释
string 待压缩的数据, 少于400字节的数据不建议压缩, 且压缩后的数据不能大于32k
int 压缩级别,默认1, 可选1或者2, 2的压缩比更高(有时候)

返回值

返回值类型 解释
string 若压缩成功,返回数据字符串, 否则返回nil

例子

复制代码
-- 注意, 压缩过程的内存消耗如下
-- 系统内存, 固定32k
-- lua内存, 原始数据的大小的1.05倍,最小占用1024字节.

fastlz.uncompress(data, maxout)

快速解压

参数

传入值类型 解释
string 待解压的数据
int 解压后的最大大小, 默认是4k, 可按需调整

返回值

返回值类型 解释
string 若解压成功,返回数据字符串, 否则返回nil

例子

相关推荐
合宙Luat2 个月前
Air780EP模块 LuatOS开发-MQTT接入阿里云应用指南
阿里云·云计算·合宙·air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--rsa - RSA加密解密
air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--rtos - RTOS底层操作库
air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--repl - “读取-求值-输出” 循环
air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--pwm - PWM模块
air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--protobuf - ProtoBuffs编解码
air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--otp - OTP操作库
air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--os - os操作
air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--nimble - 蓝牙BLE库(nimble版)
air780e
l53179815110 个月前
LuatOS-SOC接口文档(air780E)--pack - 打包和解包格式串
air780e