”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > LZ C++ React Native 绑定,实现极快的压缩算法

LZ C++ React Native 绑定,实现极快的压缩算法

发布于2024-11-08
浏览:994

LZ C   React Native bindings for an extremely fast compression algorithm

我最近开始涉足 JSI 和 C,因此,我必须构建一个名为react-native-lz4 的小包。它是一个在 React Native 中使用 C 编写的 LZ4 算法进行快速文件压缩的​​库。

它仍处于实验阶段,因为我仍在完善错误处理并扩展其 API,但它已经可以使用(谨慎!)

包:https://github.com/mateoguzmana/react-native-lz4
您可以在其网站上了解有关 LZ4 的更多信息:https://lz4.org/

该软件包支持新旧架构,目前公开了两个主要功能来压缩和解压缩任何类型的文件。

基本示例:


import { compressFile, decompressFile } from 'react-native-lz4';

function onProgress(processedSize: number, totalSize: number) {
  // e.g. { processedSize: 50, totalSize: 100, progress: '50%' }
  console.log({
    processedSize,
    totalSize,
    progress: `${Math.round((processedSize / totalSize) * 100)}%`,
  });
}

const compressionResult = await compressFile(
  'path/to/file',
  'path/to/output',
  onProgress
);
const decompressionResult = await decompressFile(
  'path/to/file',
  'path/to/output',
  onProgress
);

console.log(compressionResult);
// { success: true, message: 'File compressed successfully', originalSize: 100, finalSize: 50 }

console.log(decompressionResult);
// { success: true, message: 'File decompressed successfully', originalSize: 50, finalSize: 100 }


版本声明 本文转载于:https://dev.to/mateoguzmana/lz4-c-react-native-bindings-for-an-extremely-fast-compression-algorithm-6jh?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何跨多个浏览器执行WebUI功能文件
    如何跨多个浏览器执行WebUI功能文件
    跨多个浏览器执行 WebUI 功能文件并行测试和分布式测试技术提供了跨各种浏览器执行 WebUI 功能文件的能力。在本文中,我们将探讨如何在 Karate 和 Zalenium 中使用这些方法。使用 Parallel RunnerKarate 中的并行运行器允许您执行并行的示例表。要利用此功能针对多...
    编程 发布于2024-11-08
  • PHP 中的 URL 缩短有哈希替代方法吗?
    PHP 中的 URL 缩短有哈希替代方法吗?
    URL 缩短的散列的替代方案正在寻求一种 PHP 解决方案来创建简洁的散列,就像 URL 缩短服务(如 TinyURL)所使用的那样?虽然可能会想到散列,但此响应揭示了一种不同的方法。TinyURL 不依赖散列,而是利用 Base 36 整数(甚至包括大写和小写字母的 Base 62)来识别目标记录...
    编程 发布于2024-11-08
  • 如何在 PHP 中使用 SimpleXML 从头开始​​创建 XML 对象?
    如何在 PHP 中使用 SimpleXML 从头开始​​创建 XML 对象?
    使用 SimpleXML 从头开始​​创建 XML 对象SimpleXML 是一个 PHP 库,提供用于操作 XML 文档的全面功能。经常会出现一个疑问:是否可以完全从头开始建立一个 XML 对象?最初,SimpleXML 似乎只允许导入现有的 XML 字符串,禁止从头开始直接创建 XML 对象。然...
    编程 发布于2024-11-08
  • 如何访问 Flask 路由中的查询参数和查询字符串?
    如何访问 Flask 路由中的查询参数和查询字符串?
    访问 Flask 路由中的查询字符串使用 Flask 时,必须能够访问查询参数和您的路由中的查询字符串有效处理用户输入和处理数据的路由。让我们探讨一下如何做到这一点。考虑以下示例路线:@app.route("/data") def data(): # query_stri...
    编程 发布于2024-11-08
  • 您的 Java 日志实用程序类是否将其自身报告为日志来源?了解如何修复它!
    您的 Java 日志实用程序类是否将其自身报告为日志来源?了解如何修复它!
    在现代软件开发的快节奏环境中,有效的日志记录对于高效的调试和系统监控至关重要。但是,日志输出中不一致或不准确的行号可能会使故障排除变得非常耗时。最近,我发现我们的内部日志记录实用程序将自身报告为日志来源。需要解决这个问题以提高日志精度。 问题 当使用自定义实用程序类来处理日志时,它...
    编程 发布于2024-11-08
  • 如何通过重复较短的列表来压缩不等长的列表?
    如何通过重复较短的列表来压缩不等长的列表?
    通过重复较短的列表来压缩不同大小的列表当尝试压缩两个长度不等的列表时,内置的 zip 函数会失效通过不重复较短的列表来匹配较大的列表来缩短。为了克服这个问题,需要替代方法。使用 itertools.cycle 的解决方案itertools.cycle 函数提供了无限迭代可迭代对象的能力。可以利用此功...
    编程 发布于2024-11-08
  • 聘请 Unity 开发人员:让沉浸式游戏变得精彩
    聘请 Unity 开发人员:让沉浸式游戏变得精彩
    从游戏开发和互动的高潮中可以明显看出,即使只有一小部分时间,Unity 3D 无疑是用于开发沉浸式多平台体验的最广泛使用的平台之一。您开发移动游戏、虚拟体验、增强现实应用程序 - 无论您的想法是什么,Unity 3D 开发人员现在都可以将其变为现实。然而,找到合适的人才并不容易,尤其是在当今蓬勃发展...
    编程 发布于2024-11-08
  • 如何在页面加载后动态加载较少的样式表?
    如何在页面加载后动态加载较少的样式表?
    动态加载 LESS 样式表您表示有兴趣使用 LESS.js,同时需要在初始页面后动态加载某些样式加载。但是,LESS.js 的现有行为要求所有 LESS 样式表在 LESS.js 脚本之前加载,如下面的功能示例所示:<link rel="stylesheet/less" h...
    编程 发布于2024-11-08
  • 使用 Python 列表的优雅而简单的方法:列表推导式
    使用 Python 列表的优雅而简单的方法:列表推导式
    您可能认为列表理解是一个高级概念。然而,在棘手的情况下,它只需一行就可以简化您的代码。是时候了解它是如何工作的了。我将用示例.在初级水平上解释它 列表理解到底是什么? 您经常看到符号 l2 = [x 1 for x in l]。据说是这样的: l2 = [] for x in l: ...
    编程 发布于2024-11-08
  • 如何从 Java WebDriver 执行 JavaScript 代码?
    如何从 Java WebDriver 执行 JavaScript 代码?
    从Java执行WebDriver JavaScript:增强指南问题中提到的命令./go webdriverjs是一个shell命令设计在特定文件夹中设置并初始化 WebDriverJs 环境。但是,需要注意的是,WebDriverJs 是一种语言绑定,它支持 JavaScript 测试,而不是从 ...
    编程 发布于2024-11-08
  • 为我的 D&D 表构建自定义 Stream Deck:使用自定义 SDK 解决游戏手柄集成问题
    为我的 D&D 表构建自定义 Stream Deck:使用自定义 SDK 解决游戏手柄集成问题
    作为一名热情的龙与地下城玩家和技术爱好者,我决定通过创建一个带有嵌入式屏幕的定制咖啡桌来提升我的游戏设置。该桌子显示地图、代币、播放音效,甚至为玩家展示艺术品。所有这一切都通过一个名为 Foundry VTT 的强大平台运行,该平台与 Roll20 类似,但具有更好的定价模型和广泛的开放模块系统。它...
    编程 发布于2024-11-08
  • 如何在 PHP 中高效计算两个日期之间的月份数?
    如何在 PHP 中高效计算两个日期之间的月份数?
    有效查找日期之间的月份计数一个常见的编程挑战是确定两个日期之间的月份数。在 PHP 中,有多种方法可以解决这个问题。使用 DateTime 类 (PHP >= 5.3):PHP 5.3 中引入的 DateTime 类提供了方便的方法用于日期操作。计算月份差异:$d1 = new DateTime(&...
    编程 发布于2024-11-08
  • Bootstrap:创建和自定义导航栏
    Bootstrap:创建和自定义导航栏
    介绍 Bootstrap 是一个开源框架,广泛用于 Web 开发,用于创建响应式且适合移动设备的网站。 Bootstrap 的关键组件之一是导航栏,它是一个水平导航栏,用于组织和导航网站的内容。在本文中,我们将讨论使用 Bootstrap 创建和自定义导航栏的优点和缺点及其功能。 ...
    编程 发布于2024-11-08
  • 将 WebSocket 与 Python 结合使用
    将 WebSocket 与 Python 结合使用
    什么是 WebSocket? WebSocket 是一种支持浏览器和服务器之间实时、双向通信的协议。传统的 HTTP 通信涉及客户端发送请求和服务器响应以交换数据。相比之下,使用 WebSocket,一旦建立了初始连接,客户端和服务器都可以相互发送和接收消息,而无需重复建立新连接。...
    编程 发布于2024-11-08
  • 如何在 PHP 中从子域中提取域名?
    如何在 PHP 中从子域中提取域名?
    在 PHP 中从子域中提取域名在当代 Web 开发中,必须解析和检索域名,甚至是从子域中解析和检索域名。一个简单的示例可能包括诸如“here.example.com”或“example.org”之类的域名。为了满足这一需求,我们提出了一个全面的 PHP 函数,旨在从任何给定的输入中提取根域名。结合使...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3