当前位置: 首页 > news >正文

LuatOS-SOC接口文档(air780E)--miniz - 简易zlib压缩

示例

-- 准备好数据
local bigdata = "123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw"
-- 压缩之, 压缩得到的数据是zlib兼容的,其他语言可通过zlib相关的库进行解压
local cdata = miniz.compress(bigdata) 
-- lua 的 字符串相当于有长度的char[],可存放包括0x00的一切数据
if cdata then-- 检查压缩前后的数据大小log.info("miniz", "before", #bigdata, "after", #cdata)log.info("miniz", "cdata as hex", cdata:toHex())-- 解压, 得到原文local udata = miniz.uncompress(cdata)log.info("miniz", "udata", udata)
end

常量

常量

类型

解释

miniz.WRITE_ZLIB_HEADER

int

压缩参数,是否写入zlib头部数据,compress函数的默认值

miniz.COMPUTE_ADLER32

int

压缩/解压参数,是否计算/校验adler-32

miniz.GREEDY_PARSING_FLAG

int

压缩参数,是否快速greedy处理, 默认使用较慢的处理模式

miniz.NONDETERMINISTIC_PARSING_FLAG

int

压缩参数,是否快速初始化压缩器

miniz.RLE_MATCHES

int

压缩参数, 仅扫描RLE

miniz.FILTER_MATCHES

int

压缩参数,过滤少于5次的字符

miniz.FORCE_ALL_STATIC_BLOCKS

int

压缩参数,是否禁用优化过的Huffman表

miniz.FORCE_ALL_RAW_BLOCKS

int

压缩参数,是否只要raw块

miniz.PARSE_ZLIB_HEADER

int

解压参数,是否处理zlib头部,uncompress函数的默认值

miniz.HAS_MORE_INPUT

int

解压参数,是否还有更多数据,仅流式解压可用,暂不支持

miniz.USING_NON_WRAPPING_OUTPUT_BUF

int

解压参数,解压区间是否够全部数据,,仅流式解压可用,暂不支持

miniz.COMPUTE_ADLER32

int

解压参数,是否强制校验adler-32

miniz.compress(data, flags)

快速压缩,需要165kb的系统内存和32kb的LuaVM内存

参数

传入值类型

解释

string

待压缩的数据, 少于400字节的数据不建议压缩, 且压缩后的数据不能大于32k.

flags

压缩参数,默认是 miniz.WRITE_ZLIB_HEADER , 即写入zlib头部

返回值

返回值类型

解释

string

若压缩成功,返回数据字符串, 否则返回nil

例子

local bigdata = "123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw"
local cdata = miniz.compress(bigdata)
if cdata thenlog.info("miniz", "before", #bigdata, "after", #cdata)log.info("miniz", "cdata as hex", cdata:toHex())
end

miniz.uncompress(data, flags)

快速解压,需要32kb的LuaVM内存

参数

传入值类型

解释

string

待解压的数据, 解压后的数据不能大于32k

flags

解压参数,默认是 miniz.PARSE_ZLIB_HEADER , 即解析zlib头部

返回值

返回值类型

解释

string

若解压成功,返回数据字符串, 否则返回nil

例子

local bigdata = "123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw"
local cdata = miniz.compress(bigdata)
if cdata thenlog.info("miniz", "before", #bigdata, "after", #cdata)log.info("miniz", "cdata as hex", cdata:toHex())local udata = miniz.uncompress(cdata)log.info("miniz", "udata", udata)
end

相关文章:

LuatOS-SOC接口文档(air780E)--miniz - 简易zlib压缩

示例 -- 准备好数据 local bigdata "123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw" -- 压缩之, 压缩得到的数据是zlib兼容的,其他语言可通过zlib相关的库进行解压 local cdata miniz.compress(bigdata) -- lua 的 字符串相当于有长度的cha…...

一整套智慧工地源码,劳务实名制、施工安全管理、绿色施工、危大工程设备监测、视频AI识别功能

智慧工地系统充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术,以PC端,移动端,设备端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳务、设备、物料、安全、环境、能源、资料、计划、质量、视频监控等…...

世微 DC-DC平均电流双路降压恒流驱动器 LED车灯AP2813

产品描述 AP2813 是一款双路降压恒流驱动器,高效率、外 围简单、内置功率管,适用于 5-80V 输入的高精度降 压 LED 恒流驱动芯片。内置功率管输出最大功率可达 12W,最大电流 1.2A。 AP2813 一路直亮,另外一路通过 MODE1 切换 全亮&#xff0c…...

ES6~ES13新特性(一)

文章目录 一、ES6中对象的增强1.字面量的增强2.解构Destructuring3.解构的应用场景 二、手写实现apply、call、bind方法1.apply、call方法2.bind方法 三、ECMA新描述概念1.新的ECMA代码执行描述2.词法环境(Lexical Environments)3.词法环境和变量环境4.环…...

基于 Amazon EC2 和 Amazon Systems Manager Session Manager 的堡垒机的设计和自动化实现

文章目录 1. 背景2. 云上堡垒机设计2.1 安全设计2.2 高可用和弹性设计2.3 监控告警设计2.4 自动化部署设计2.4.1 堡垒机代码设计2.4.2 Session Manager 配置设计2.4.3 堡垒机 IAM 角色设计 3. 部署堡垒机3.1 堡垒机部署架构图3.2 堡垒机自动化部署 4. 堡垒机使用场景4.1 堡垒机…...

RFID管理方案有效提升电力物资管理效率与资产安全

在电力行业,电力资产的管理是一项重要的任务,为了实现对电力资产的精细化管理、入出库监控管理、盘点管理和巡查管理等,电力公司多采用电力资产RFID管理系统,该系统能够实时监控出入库过程,有效防止出入库错误&#xf…...

leetcode:389. 找不同

一、题目 函数原型:char findTheDifference(char * s, char * t) 二、思路 作者原先的思路是先将两个字符串从小到大排序,然后两个字符串依次比较。若出现字符串t中的元素和字符串s不相等,则说明该元素就是被添加的字母。 但是,该…...

c 函数调用过程中,调用函数的栈帧一旦被修改,被调用函数则无法正确返回。( X )

当一个函数被调用时,它的栈帧会被创建并压入调用栈中。栈帧包含了函数的局部变量、参数以及返回地址等信息。当函数执行完毕后,栈帧会被弹出,返回到调用函数的位置继续执行。 下面是一个示例代码,展示了调用函数栈帧被修改但不影…...

专为个人打造专注工作的便签APP工具推荐哪个

工作中很多人都比较懒散,工作起来动力不足,常常拖延消极怠工,等到一天结束后进行工作盘点时才发现很多项任务都没有处理完;这和日常工作不能专注于工作有很大的关系。 专注工作,在日常办公时可以选择一些好用的手机便…...

代码随想录算法训练营第四十二天 | LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零

代码随想录算法训练营第四十二天 | LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零 文章链接:最后一块石头的重量 II 目标和 一和零 视频链接:最后一块石头的重量 II 目标和 一和零 1. LeetCode 1049. 最后一块石头的重量 II 1.1 思路…...

Windows PowerShell 和 Linux BashShell 极简对比

声明:本文不会涉及原理,详细的介绍,也不是入门文章。仅仅从使用上进行简单比较 命令 在 bash 中,一个命令是一个单独的进程;而在 PowerShell 中,命令被称为 cmdlets,他们不是独立的可执行程序&…...

校验验证码是否过期(定时刷新验证码)

需求: 我们在登录的时候会遇到通过接口请求验证码的操作,这里的验证码会有过期的时间,当我们验证码过期了,我们要进行重新刷新验证码。 我们这里根据后端返回的当前时间和过期时间判断,过期的时间超过了当前时间的时候…...

windows idea本地执行spark sql避坑

本地安装了IDEA,并配置好了相关POM,可以在本机使用sparkSession连接数据,并在数据库执行sql,在idea展示执行结果。 但是,如果将数据的查询结果建立到spark中,再展示,就会报错 Error while run…...

在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程

在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程 入队过程如下图: 先创一个结点,用于存储要插入的结点数据 然后就是老套路了…...

智能客服系统应用什么技术?

随着科技的飞速发展,智能客服系统逐渐出现在我们的生活中。这些系统不仅能够提供即时的客户服务,还可以通过人工智能等技术实现更加高效和准确的服务。那么,智能客服系统究竟应用了哪些技术呢?本文将详细解析。 1、机器学习技术 …...

亚马逊、美客多卖家测评:如何建立养号团队实现运营化式测评?

大家好,我是跨境电商测评养号7年从事经验的珑哥。养号环境软件开发,深度解决各跨境平台矩阵养号防关联、砍单、F号问题。关注珑哥解决更多跨境养号测评问题。 测评,相信这个词对于大部分跨境卖家来说,想必都不陌生,因…...

苹果IOS系统webglcontextlost问题-解决方案

问题描述 在IOS手机 解码视频流的时候,第一次可以正常播放,但只要IOS手机熄屏,再重新唤醒,就会一直播放失败,无论换哪个浏览器都不行。安卓手机则一切正常。 经过排查,发现 IOS手机 的浏览器会无故 webGL…...

供应链ERP之合同:创建、修订与模板

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…...

MySQL第二讲·表的创建与修改

你好,我是安然无虞。 文章目录 表:怎么创建和修改数据表?1. 如何创建数据表?2. 都有哪些约束?3. 如何修改表?添加字段修改字段 表:怎么创建和修改数据表? 创建和修改数据表&#x…...

springboot的循环依赖问题描述及解决方案

一.了解循环依赖的场景 在Spring Boot中,循环依赖是指两个或多个Bean之间相互依赖,导致它们无法正确地创建和注入。循环依赖可能会导致应用程序无法启动或出现其他异常。 在以下情况下,您可能需要显式设置循环依赖: 两个Bean相…...

NY352固态MT29F32T08GWLBHD6-24QJ:B

NY352固态MT29F32T08GWLBHD6-24QJ:B从你的笔记本到高性能服务器,从智能仪表到工业机器人,一块灵魂级的存储芯片往往决定了系统的稳定与寿命。在众多闪存颗粒中,MT29F32T08GWLBHD6-24QJ:B 无疑是最具代表性的存在之一。它看似不起眼&#xff0…...

基于Orange Pi 5 Plus与DEEPX栈的边缘AI部署实战指南

1. 项目概述:当一块开发板遇见AI大潮最近在深圳参加了一场关于人工智能硬件与边缘计算的行业峰会,感触颇深。会上,一款基于Orange Pi 5 Plus开发板打造的DEEPX人工智能产品,实实在在地吸引了我的目光。这不仅仅是又一款“开发板AI…...

好用的临沂GEO生成式引擎优化公司

在当今数字化时代,互联网的发展日新月异,AI搜索逐渐成为人们获取信息的重要方式。对于企业和个人来说,如何在海量信息中脱颖而出,让自己的产品、品牌、理念被客户第一时间找到,成为了亟待解决的问题。临沂好味来文化传…...

长期项目中使用Taotoken观测用量与优化API调用策略

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期项目中使用Taotoken观测用量与优化API调用策略 在持续数月的开发项目中,团队对大型语言模型的调用往往从简单的功能…...

[网络工程师]-路由配置-NAT策略与多出口场景实战

1. 多出口网络中的NAT策略核心价值 在校园网或企业网络环境中,多出口架构已经成为标配。我见过太多单位初期只用一个出口,后来业务扩展了才手忙脚乱地增加线路,结果导致访问卡顿、资源冲突等问题。多出口网络最典型的场景就是同时拥有教育网…...

DeepSeek SSO性能压测实录:单集群支撑5000+并发登录的4大调优阈值(含Prometheus监控指标基线)

更多请点击: https://intelliparadigm.com 第一章:DeepSeek SSO单点登录性能压测全景概览 DeepSeek SSO 作为企业级统一身份认证中枢,其在高并发场景下的响应延迟、会话稳定性与令牌签发吞吐能力直接决定下游所有业务系统的可用性边界。本章…...

Android Studio中文界面终极解决方案:告别官方插件的兼容性烦恼

Android Studio中文界面终极解决方案:告别官方插件的兼容性烦恼 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为…...

【Perplexity知识图谱查询实战指南】:20年专家亲授3大隐性陷阱与5步精准检索法

更多请点击: https://codechina.net 第一章:Perplexity知识图谱查询的核心原理与能力边界 Perplexity 知识图谱查询并非传统关键词匹配,而是基于语义解析的多跳推理引擎。其核心依赖于三元组嵌入(Triple Embedding)与…...

ATmega328P烧录Bootloader报错?别急着换芯片,可能是签名搞的鬼(附avrdude.conf修改教程)

ATmega328P烧录Bootloader报错?别急着换芯片,可能是签名搞的鬼(附avrdude.conf修改教程) 当你兴致勃勃地准备给新买的ATmega328P芯片烧录Bootloader时,突然弹出一串红色报错信息,那种心情就像煮熟的鸭子飞走…...

《超图解趣味数学:微积分》与《图解微积分》哪本更适合小学生阅读

一、《超图解趣味数学:微积分》更适合小学生阅读 《超图解趣味数学:微积分》更适合小学生阅读‌,尤其适合在家长或教师引导下进行数学启蒙。 该书专为‌7-15岁青少年‌设计,内容以趣味漫画、生活场景和小品文形式展开,…...