代码编织梦想

一、rust+neon开发node原生模块

1.安装并配置好rust开发环境;
2.安装neon-cli,安装命令:npm install neon-cli -g;
3.使用neon new [模块名称],生成rust+neon开发环境,生成的项目中已定义一个hello,node模块函数,可以使用neon build生成index.node文件,使用node lib/index.js即可完成初步测试;
4.neon开发文档示例和API见官网https://neon-bindings.com/;
5.使用neon开发node模块遇到的问题:
数据类型转换:
 法一:使用neon_serde库可以将rust任意类型的数据转换成neon js value类型数据,这个库不匹配neon0.5以上的版本,只支持neon0.5以下的版本。
 法二:使用serde_json库可以将rust任意类型的数据转换成neon js string类型数据,这个库没有使用限制,但是返回的结果值是一个Json字符串,需要在nodejs中转换一下才能使用。
下面是法二的转换代码:

let response = json!({
                    "list":result,
                    "total":total
                });
 Ok(cx.string(response.to_string()))

二、在electron 中使用rust+neon开发的node原生模块

搭建electron原生模块运行环境:
 1)安装vue-cli,安装命令:npm install @vue/cli -g,将安装最新的vue-cli脚手架;
 2)使用vue create [项目名称] 创建基于vue-cli脚手架最新的项目,可自定义使用vue-router vuex 等模块;
 3)进入项目根路径中,使用vue add electron-builder选择安装electron版本集成到vue-cli项目中,若想切换electron版本,执行命令npm uninstall electron&&npm install electron@x.x.x -d即可;
 4)可以查看package.json,有六种命令脚本定义,使用npm run electron:serve可以启动electon桌面程序,可以使用npm run electron:build编译electron桌面程序发行版
 5)将第一步的项目打包至根目录下的node_modules下,并在package.json中添加一行新的脚本命令:“neon:build”:“electron-builder-env neon build [模块名称] --release”,在第一步的项目路径中执行npm install 安装好相应的node依赖,在本部项目的根目录中安装electron-builder-env node依赖,然后执行npm run neon:build 即可编译成electron中使用的原生模块,如果命令中出现编译错误,可以尝试安装最新node windows-build-tools,命令行如下:npm install --global --production windows-build-tools,此命令在power shell中执行。
 6)在项目根路径中添加vue.config.js,内容如下

module.exports = {
    pluginOptions: {
        electronBuilder: {
            nodeIntegration: true,
            externals: ['模块名称'],
            builderOptions: {
                asar:false
            }
        }
    }
}

 开启nodeIntegration,即可在electron中使用原生模块的功能。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/CrazyWorkers/article/details/110664009

Rust环境配置-爱代码爱编程

rust安装 在rust官网通过推荐方式安装。推荐方式是通过安装rustup工具方式安装rust。rustup是rust的版本管理工具。可以管理众多rust版本。当然也可以不通过rustup方式安装rust。 使用如下命令测试rust是否安装成功: rustc --version racer安装 racer是一个由rust的爱好者提供的rust自

Rust语言成为趋势,在学术界也一样风靡-爱代码爱编程

本文源自:大东BE AWS 将 Rust 编译器团队负责人收入麾下的新闻让开发者们再次聚焦于这门兼具安全性与高性能的编程语言。近日,著名科学期刊 Nature 刊登了一篇文章,表明 Rust 语言也正在成为学术界最受欢迎的编程语言之一。 2015 年,德国生物信息学家 Johannes Köster 曾用 Python 编写了一个流行的工作流管理器 S

稳坐开发领域霸主之位,揭秘C语言无可取代的几大原因!-爱代码爱编程

摘要:C语言在这过去的五十年间,已经逐渐发展成为极其重要的软件开发语言。本文将深度剖析它是如何与C++、Java、C#、Go、Rust和Python进行竞争,并保持一定优势的。 对于计算机编程语言来说,没有什么技术能沿用半个世纪年,除非它比其他的都好用。C语言于上世纪七十年代初年面世,如今在软件世界仍保持着底层基础开发的主流语言的地位。 有时

Rust安装和环境配置-爱代码爱编程

Rust 环境配置 工欲善其事必先利其器,无论是对小白还是大神来说,想要学习 Rust 第一步那必须是 Rust 的环境配置。搭建好一个完整的开发环境,可以减少很多不必要的麻烦,可以让我们在学习的时候少一些外部环境的影响,更加专注于 Rust的学习。 安装 Rust 虽然我很想在 Linux 系统上安装 Rust,但是还是要向生活妥协,本人

Javascript的补充:Typescript、Rust、C/C++-爱代码爱编程

浏览器只支持Javascript和WebAssembly,所以作为Javascript的补充,要么能够转换成Javascript,要么能转换成WebAssembly。 补充Javascript的出发点有三: 一、重复利用已经有的代码,特别是C/C++的代码,不用为了将应用转移到Web端,用Javascript重写一遍,将原来的C/C++转换一下就好。二

原码,补码和反码-爱代码爱编程

1、机器数与真值 在学习原码,反码和补码之前, 需要先了解机器数和真值的概念。 1.1、机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数 机器数是有符号的,在计算机用机器数的最高位存放符号,正数为0,负数为1 例子: 十进制中的数3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。这里的

如何更换yarn或者npm镜像源-爱代码爱编程

yarn 或者 npm 的默认镜像源比较慢。可以如下更新 npm config get registry // 查看源 npm config set registry https://registry.npm.taobao.org/ // 设置源 yarn config get registry // 查看源yarn yarn config se

搭建Vue项目-爱代码爱编程

搭建Vue项目 检查环境 node 和 npm搭建vue项目环境查看所有全局安装的模块全局安装vue-cli进入项目目录,创建一个基于 webpack 模板的新项目安装依赖运行项目 检查环境 node 和 npm E:\VueProject\XXXX-ui>node -v v12.13.1 E:\VueProject\XXXX-ui&

初识WebPack-爱代码爱编程

初识WebPack 一、什么是webpack 我所理解的webpack,主要是从两个方面出发,一是webpack是一个前端构建器,二是webpack是一个静态模块打包器。 1、前端构建工具 1-1、为什么要使用构建工具      由于目前的浏览器种类繁多,大部分对于Es6等语法还是不能够兼容的。使用构建工具可以帮助转换Es6语法、转换JSX、css

vue报错——不能创建新项目-爱代码爱编程

搭建好了vue/cli的框架,却不能创建项目文件——报错   当我们用 npm install -g @vue/cli搭建好脚手架时,不能用vue create xxx  创建项目还出现系统禁止运行脚本等信息~~   报错界面: 解决方法:     以管理员身份进入powershell窗口,执行set-ExecutionPolicy Rem

通过cnpm创建vue项目-爱代码爱编程

一、前期准备 1、使用node-v 和 npm -v 检查版本 2、使用更换淘宝路径 1、执行如下命令 - 使用淘宝npm镜像定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm npm install -g cnpm --registry=https://registry.npm.taobao.org 2、可

关于 create-react-app 自定义 eslint文件配置解决方案-爱代码爱编程

create-react-app项目自定义eslitn配置方式 方案一 eject 项目webpack配置进行自定义 这个方案比较low,不建议使用。这里不讲解了。 方案二  在 package.json 中的 script 命令 添加环境变量 EXTEND_ESLINT=treu 开启自定义 react-script4.x版本以下可用这个方