节点-ffi-napi
N- API 的 Node.js 外国函数接口
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 文档.