@cratzdog/ react-native-buffer (英语)
缓冲模块从 节点.js反应原生.
简单 require('@craftzdog/react-native-buffer') 或使用 Buffer 环球,你会得到这个模块.
它内部使用 反应-内生-快克-基质64,这是当地执行基础64的表演.
目标是提供100%的API与 节点缓冲 API。阅读 正式文件 为完整的财产清单, 实例方法和所支持的分类方法.
特性
- 在所有浏览器中像老板一样操纵二进制数据!
- 超级快。 由已键入的阵列备份( T)
Uint8Array编号 :ArrayBuffer没有Object(中文(简体) ) - 极小的捆绑大小(6.75KB 变焦+克齐克, 51.9KB 有评论)
- 极佳的浏览器支持(Chrome,Firefox,Edge,Safari 11+,iOS 11+,Android等)
- 完全保留节点 API
- 平方括号
buf[4]标记有用! - 不修改任何浏览器原型或设置任何东西
window - 综合测试套件(包括节点.js核心的所有缓冲测试)
安装
npm install @craftzdog/react-native-buffer react-native-quick-base64
cd ios && pod install
使用量
模块的API与节点完全相同 Buffer API (英语). 读取
正式文件 为完整的财产清单,
实例方法和所支持的分类方法.
要明确依赖这个模块,就需要这样:
import { Buffer } from "@craftzdog/react-native-buffer";
怎么会这样?
缓冲构造器返回 Uint8Array 他们的原型
改为 Buffer.prototype此外, Buffer 是一个子类 Uint8Array, (中文(简体) ),
因此返回的示例将拥有所有节点 Buffer 方法与方法
Uint8Array 方法。 。 。 平方括号的标记工作如预期 -- -- 它返回 a
(原始内容存档于2018-10-12). single octet.
这个 Uint8Array 原型机仍未被修改.
转换软件包
将输入数组转换为缓冲
使用 typedarray-to-buffer 将任意类型的数组转换为 Buffer. 不执行一个复制, 所以它的超级快.
将缓冲转换为已键入数组
Buffer 是一个子类 Uint8Array (这是一个被键入的数组). 因此,没有必要明确转换为打入的数组. 把缓冲器当作一个 Uint8Array。 。 。 .
将 blob 转换为缓冲
使用 blob-to-buffer 转换 a Blob 改为 Buffer。 。 。 .
将缓冲转换为 blob
转换 a Buffer 改为 Blob,使用 Blob 构造器 :
var blob = new Blob([buffer]);
可选地指定一个 MIME 类型 :
var blob = new Blob([buffer], { type: "text/html" });
将阵列缓冲器转换为缓冲器
要转换一个 ArrayBuffer 改为 Buffer,使用 Buffer.from 函数。 不做一个复制,所以它的超级快.
var buffer = Buffer.from(arrayBuffer);
将缓冲器转换为阵列缓冲器
转换 a Buffer 改为: ArrayBuffer,使用 .buffer 属性( 它存在于所有 Uint8Array 对象 :
var arrayBuffer = buffer.buffer.slice(
buffer.byteOffset,
buffer.byteOffset + buffer.byteLength
);
或者,使用 to-arraybuffer 模块.
业绩
4x比iPhone 11 Pro上的 Base64快,因为 反应-内生-快克-基质64。 。 。 .
测试项目
首先,安装工程:
npm install
然后,在Node.js进行测试,运行:
npm run test-node
要在浏览器中本地测试, 您可以运行 :
npm run test-browser-old-local # For ES5 browsers that don't support ES6
npm run test-browser-new-local # For ES6 compliant browsers
这将打印出一个URL, 然后在浏览器中打开, 运行测试, 使用 空气图。 。 。 .
要使用 Saucelabs 运行自动浏览器测试,请确保您 SAUCE_USERNAME 财务报告和审定财务报表 SAUCE_ACCESS_KEY 设置环境变量,然后运行:
npm test
这是在特拉维斯运行, 检查各种浏览器。 浏览器列表保存在 bin/airtap-es5.yml 财务报告和审定财务报表 bin/airtap-es6.yml 文档.
JavaScript 标准样式
此模块使用 JavaScript 标准样式。 。 。 .
为了测试密码符合风格, npm install 运行 :
信贷
这原本是从 粪便/缓冲。 。 。 .
安全政策和程序
这个 buffer 团队和社区将所有安全错误带入 buffer 说真的 请看我们的 安保政策和程序 记录如何报告问题.
许可证
麻省理工学院. 版权(C) 松山拓也,以及其他贡献者. 最初从麻省理工学院的许可模块中取出 费罗什·阿布克哈迪耶赫 还有罗曼波克西.