首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏原创分享

    node-addon-api的设计和实现

    但是napi用起来非常冗余和麻烦,每一步都需要我们自己去控制,所以又有大佬封装了面向对象版本的api(node-addon-api),使用上方便了很多,本文分析一下node-addon-api的设计思想 至此我们看到了node-addon-api设计的基本思想如图所示。 ? 大致的思想就是node-addon-api为我们封装了一层,当napi调用我们定义的内容时,会先经过node-addon-apinode-addon-api封装napi的入参后再调用我们自定义的内容。同样,我们返回内容给napi时,也会经过node-addon-api的封装再回到napi。 这样我们只需要面对node-addon-api提供的接口而不需要理解napi。另外node-addon-api还做了一些运算符重载使得我们写代码更容易。比如对Object []的重载。

    1.5K40发布于 2021-07-30
  • 来自专栏月色的自留地

    简单上手nodejs调用c++(c++和js的混合编程)

    @(node -p \"require('node-addon-api').include\")" ], "dependencies": [ "<! (node -p \"require('node-addon-api').gyp\")" ], "cflags!" include_dirs是编译时使用的头文件引入路径,这里使用node -p执行node-addon-api模块中的预置变量。 dependencies是必须的,不要改变。 @(node -p \"require('node-addon-api').include\")" ], "libraries": [ '-lssl -lcrypto (node -p \"require('node-addon-api').gyp\")" ], "cflags!"

    5.9K40发布于 2018-08-10
  • 来自专栏全沾开发(huā)

    如何写一个简单的node.js c++扩展

    我们本次介绍的是在 node-addon-api 目录下的,算是三种里边最为易用的一种了。 首先是我们比较熟悉的 package.json 文件,我们需要依赖两个组件来完成开发,分别是 bindings 和 node-addon-api。 后记 上边的一些内容就是如何使用 node-addon-api 来快速开发一个 c++ 扩展,以及如何使用 node-gyp 进行编译,还有最后的如何使用 JS 调用 c++ 扩展。 不要让编程语言限制了你的想象力 参考资料 node-gyp node-addon-api | Addon node-addon-api | CallbackInfo node-addon-api | Function node-addon-api | Object node-addon-api | Array node-addon-api | Number

    2.3K30发布于 2020-08-10
  • 来自专栏Nodejs技术栈

    如何开发 Node.js Native Add-on?

    目前 N-API 的 C++ 封装 node-addon-api 每周的下载量已经超过了 250万次,并且所有 Node.js LTS(长期支持版本)都已经支持了 N-API v3 或者更高版本 ,Node.js 新特性 越来越多的开发者们开始使用 N-API 与 node-addon-api 开发 Node.js add-on,我们也不断地为 N-API 和 node-addon-api 添加新的关键特性和改进 开始上手 我们已经在 GitHub 上准备了非常多的 node-addon-examples 来给开发者快速了解常见场景该如何使用 N-API 和 node-addon-api 来开发 Node.js 每一个样例目录会包含 3 个子目录,分别代表了传统的 NAN,N-API,和 node-addon-api 开发 add-on 的例子。 $ cd node-addon-examples/1_hello_world/node-addon-api/ $ npm i $ node .

    2K20发布于 2021-03-16
  • 来自专栏编译思想

    使用node-gyp编写简单的node原生模块

    基于node-addon-api 基于node-addon-api的nodejs插件,使用的是node的头文件:#include <node.h>。

    68720编辑于 2023-10-17
  • 来自专栏向治洪

    Node.js 15 正式版发布

    为了支持使用C++,Node.js使用了一个C++包装器模块叫做node-addon-api,此包装器提供了一个可内联的C++ API。 使用node-addon-api构建的二进制文件将依赖于Node.js导出的基于C函数符号的N-API接口,node-addon-api是一种更有效写代码的方法,用来编写调用N-API。 关于 Node.js 的N-API,可以参考:C/C++ addons with N-API 下面是node-addon-api的一个使用例子。

    2.2K30编辑于 2022-11-30
  • 来自专栏音视频直播技术专家

    medooze源码分析--NodeJS调用C/C++

    我们开始初始化npm,以便我们可以安装我们的依赖项: npm init 现在,正如我们所说,我们安装了依赖项: npm i node-addon-api bindings 此时我们需要用我们的逻辑创建我们的 @(node -p \"require('node-addon-api').include\")" ], "target_name": "hello_world", Node-addon-api示例可以在这里找到。 可以在这里找到Nan示例。 另一个好的来源是这里的测试。 要了解有关原生扩展的更多信息。

    1.6K10发布于 2020-04-02
  • 来自专栏Nodejs技术栈

    零基础开发 Node.js Addons 插件:Hello Node-API

    入门准备 Node-API 是一种 C API,但是有时候使用 C++ API 可能会更易使用,为了支持 C++ 项目还维护了一个名为 **node-addon-api**[3] 的 C++ 包装器模块 ,在本节入门介绍这里不会借助 node-addon-api 模块,后续会有章节介绍。 nodejs.org/api/n-api.html [2]abi-stable-node#420: https://github.com/nodejs/abi-stable-node/issues/420 [3]node-addon-api : https://github.com/nodejs/node-addon-api [4]node-gyp#installation: https://github.com/nodejs/node-gyp

    3.2K30编辑于 2022-04-06
  • 来自专栏正则

    Node.js 原生模块开发方式变迁

    文中之前也说了,有一个外挂式头文件的包,其包名是 node-addon-api。 我们就试着通过它来进行向下兼容吧。首先在我们刚才的源码目录把这个包给安装上。 @(node -p \"require('node-addon-api').include\")" ], "dependencies": [ "<! (node -p \"require('node-addon-api').gyp\")" ] <!@ 和 <! 开头的字符串在 GYP 中代表指令,表示它的值是后面的指令的执行结果。 @(node -p \"require('node-addon-api').include\")" ], "dependencies": [ "<! (node -p \"require('node-addon-api').gyp\")" ] }] } 至于源码层面,我们就不需要作任何修改。在 Node.js v6.x 下面试试看吧。

    1.7K30编辑于 2022-01-05
  • 来自专栏网络日志

    npm无法安装sharp

    dependencies TOUCH Release/obj.target/libvips-cpp.stamp CC(target) Release/obj.target/nothing/node_modules/node-addon-api

    13.4K30编辑于 2022-07-06
  • 来自专栏即时通讯技术

    IM跨平台技术学习(四):蘑菇街基于Electron开发IM客户端的技术实践

    对 c++ 代码进程封装 addon 的时候,可以使用 node-addon-apinode-addon-api 包对 N-API 做了封装,并抹平了 nodejs 版本间的兼容问题。 封装大大降低了非职业 c++ 开发编写 node addon 的成本(关于 node-addon-api、N-API、NAN 等概念可以参考死月同学的文章《从暴力到 NAN 再到 NAPI——Node.js

    2.3K30编辑于 2022-10-14
  • 来自专栏Nodejs技术栈

    Node.js 与未来

    在过去的一段时间,N-API 团队一直致力于 Node.js 核心和 node-addon-api 的工作。Node 核心提供了基于 C 的 API。 而 node-addon-api 提供了封装了这些 C API 的 C++ 的 API。基本上它只是个语法糖,让 N-API 使用更加容易。我们一直致力于这两个工作。 我们知道这将是长期的过程,大概三四年前,我们启动这项工作,只知道这将需要很长的迁移过程,但是我们今年已经看到 node-addon-api 的下载量趋向三百万次下载/周。真是非常高兴看到这样的结果。

    1.2K31发布于 2021-01-27
  • 来自专栏黯羽轻扬

    Node.js为什么需要C++扩展?

    P.S.更复杂的用法,以及关于 N-API 的更多信息,见N-API P.S.另外,N-API 提供的都是 C 接口,对于 C++环境,可采用node-addon-api 五.应用场景 有些场景下,用

    2.8K10发布于 2020-05-22
领券