zoukankan      html  css  js  c++  java
  • 使用neon 开发nodejs addon

    备注:开发使用的是mac 系统,需要安装rust nodejs 、python2.7 Xcode  

    1. 安装neon

    npm install -g neon-cli
     
    2. 创建简单项目
    neon new firstaddon (会有提示进行输入即可)
    3. 项目结构
    ├── README.md
    ├── lib
    │   └── index.js
    ├── native
    │   ├── Cargo.toml
    │   ├── build.rs
    │   └── src
    │       └── lib.rs
    └── package.json
    
    说明:
    pakcage.json  比较简单,主要是使用neon-cli 进行构建
    
    {
      "name": "firstaddon",
      "version": "0.1.0",
      "description": "",
      "main": "lib/index.js",
      "author": "dalongrong <1141591465@qq.com>",
      "license": "MIT",
      "dependencies": {
        "neon-cli": "^0.1.22"
      },
      "scripts": {
        "install": "neon build"
      }
    }
    native 为一个简单的rust 项目,主要是进行node addon 的暴露
    
    native/src/lib.rs  主要代码
    #[macro_use]
    extern crate neon;
    
    use neon::vm::{Call, JsResult};
    use neon::js::JsString;
    
    fn hello(call: Call) -> JsResult<JsString> {
        let scope = call.scope;
        Ok(JsString::new(scope, "hello node").unwrap())
    }
    
    register_module!(m, {
        m.export("hello", hello)
    });
    
    lib  目录进行node addon调用
    
    lib/index.js
    
    var addon = require('../native');
    
    console.log(addon.hello());

    4. 构建
    npm install  || yarn run install
    
    node lib/index.js
     
    5. 参考资料
    https://www.neon-bindings.com/
    https://www.npmjs.com/package/@dalongrong/firstaddon
     
     
  • 相关阅读:
    UIWebView的高度不对问题
    SQL --分组【Group By】
    SQL--Order By
    SQL--空值处理
    SQ--模糊查询
    SQL 聚合函数
    SQL 语句的TOP,Distinct语句
    SQL约束
    1 翻译系列:什么是Code First(EF 6 Code First 系列)
    终极版:由简单工厂模式,升级到抽象工厂模式(用到反射)
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/8545545.html
Copyright © 2011-2022 走看看