@2060.io/ffi-napi

中文文档
4.0.9发布于 2024/04/06MITTypeScriptCommonJS近 30 天下载 6215

一个用于节点.js, N-API 样式的外向函数接口( FFI)

中文使用文档
文档目录9 节
  1. N- API 的 Node.js 外国函数接口
  2. 示例
  3. 所需资源
  4. 安装
  5. 源安装/ 手工汇编
  6. 类型
  7. V8和64位类型
  8. 拨打超头
  9. 许可证

节点-ffi-napi

N- API 的 Node.js 外国函数接口

Greenkeeper badge

NPM Version NPM Downloads Build Status Coverage Status Dependency Status

node-ffi-napi 是用于加载和调用动态库的节点.js addon 使用纯 Java 脚本。 它可用于创建对本地图书馆的约束 不写入任何 C++ 代码.

也简化了节点的扩增,并增加了C码 处理 JavaScript 和 C 之间的类型翻译, C 可添加还原 将锅炉板的代码转换为 C example/factorial 以此为例.

页:1: 此叉使用了补丁版本 ref-napi 由于在密集使用时发现严重性能问题. 这个补丁已被证明在更古老的节点版本中不稳定. 因此,需要QQ18节点.

警告数字 : node-ffi-napi 假设你知道自己在做什么。 你会漂亮 很容易创建您会错失解释器的情况, 除非 你有C调试器的技巧 你可能不会知道发生了什么.

警告: 最初的API 的 node-ffi 大部分未触及 N-API包装. 但是,API没有非常明确的属性 在收集垃圾和多条行刑的背景下。 没错 建议避免该图书馆使用多条线 如果可能的话.

示例

var ffi = require('ffi-napi');

var libm = ffi.Library('libm', {
  'ceil': [ 'double', [ 'double' ] ]
});
libm.ceil(1.5); // 2

// You can also access just functions in the current process by passing a null
var current = ffi.Library(null, {
  'atoi': [ 'int', [ 'string' ] ]
});
current.atoi('1234'); // 1234

更详细的导言,请参看 节点- ffi 教程页面。 。 。 .

所需资源

  • Linux, OS X, Windows, or Solaris (英语).
  • libffi 与节点- ffi- napi 捆绑在一起 没有 需要安装在您的系统中 .
  • 目前版本被测试在节点6及以上运行.

安装

确保你安装了所有 必要的建筑 工具 为了你的平台, 然后援引:

$ npm install ffi-napi

源安装/ 手工汇编

要从源头编译,最容易使用 node-gyp数字 :

$ npm install -g node-gyp

现在你可以编译 node-ffi-napi数字 :

$ git clone git://github.com/node-ffi-napi/node-ffi-napi.git
$ cd node-ffi
$ node-gyp rebuild

类型

您在函数声明中指定的类型对应 ref 的类型 系统。 这么说吧 参见其文件 页:1 如果你不熟悉,请参考.

V8和64位类型

在内部, V8 存储将装入 32 位空间的整数 整数, 和那些不属于这个范围的人 被投入到双精度 浮点数. 这有问题,因为FP数字不准确. 要绕过这里,处理64位整数的节点-ffi方法返回 字符串并可以接受字符串作为参数.

拨打超头

有与FFI电话有关的非部落间接费用。 比较硬码 装订版本 strtoul() 改为FFI版本 strtoul() 显示 原生的硬编码装订速度更快。 所以不要随便用 C版本的函数只是因为它更快. 这里面成本很高 FFI的电话,所以让他们值得.

许可证

MIT许可证。 见 LICENSE 文档.

版本与发布记录

@2060.io/ffi-napi 共发布 6 个版本,首次发布于 2023/08/13;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.0.9latest2024/04/062 年前
4.0.82023/09/063 年前
4.0.72023/09/063 年前
4.0.62023/09/063 年前
4.0.52023/08/133 年前
4.0.42023/08/133 年前

关于 @2060.io/ffi-napi 的常见问题

@2060.io/ffi-napi 是什么?

一个用于节点.js, N-API 样式的外向函数接口( FFI)

如何安装 @2060.io/ffi-napi?

在项目目录运行 npm install @2060.io/ffi-napi,或使用 pnpm add / yarn add / bun add。

@2060.io/ffi-napi 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@2060.io/ffi-napi 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@2060.io/ffi-napi 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@2060.io/ffi-napi 可以商用吗?

@2060.io/ffi-napi 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@2060.io/ffi-napi 的下载量有多少?

根据 npm 官方下载统计,@2060.io/ffi-napi 在 2026/10/05 – 2026/11/03 这 30 天内被下载 6,215 次,日均约 207 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@2060.io/ffi-napi 还在维护吗?

最新版本 4.0.9 发布于 2024/04/06(2 年前);至今共发布 6 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/08/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。