rust+neon+electron开发笔记

1 篇文章 0 订阅
1 篇文章 0 订阅

一、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中使用原生模块的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: pixijs是一款基于JavaScript的2D游戏和应用程序开发框架,它提供了强大的图形渲染能力和丰富的功能。它被广泛应用于 Web 和移动平台上,可用于开发各种类型的游戏、交互式应用和可视化效果。 Rust是一种系统级编程语言,它被设计用于开发快速、安全和可靠的软件。它强调安全性、并发性和性能,为开发人员提供了可靠的内存管理机制和丰富的工具集。Rust可以用于开发各种类型的应用,包括系统级程序、Web 后端、嵌入式设备和游戏等。 WASM(WebAssembly)是一种低级字节码格式,被设计用于在 Web 浏览器中运行高性能的跨平台应用程序。它可以将其他语言编译为可在现代浏览器中运行的机器码,提供了比 JavaScript 更高的性能和更接近本地的执行速度。WASM 可以用于各种应用场景,包括游戏、图形渲染、音视频处理和科学计算等。 结合pixijs、Rust和WASM,我们可以开发出高性能的图形应用程序。通过使用pixijs进行游戏和图形渲染的开发,结合Rust的编程语言特性,可以编写出更加安全和高效的代码。然后,使用WASM将Rust代码编译为WebAssembly模块,使其能够在浏览器中运行。这样,我们可以在浏览器中实现更加复杂和流畅的游戏、交互性应用和图形效果,获得更好的用户体验。同时,使用Rust和WASM也可以提供更好的性能和安全性,保护用户的数据和隐私。总之,结合pixijs、Rust和WASM可以创建出令人惊叹的Web应用程序。 ### 回答2: pixijs是一个轻量级的2D渲染引擎,具有强大的性能和跨平台的能力。它使用JavaScript编写,可用于创建交互式的Web应用程序和游戏。pixijs提供了许多功能丰富的API,例如图形渲染、粒子效果、动画、交互、音频等,使开发者能够轻松地构建出色的视觉效果和丰富的用户体验。 Rust是一种系统级的、多范式的编程语言,注重安全、并发和性能。与传统的编程语言不同,Rust在编译时就能够检测到多种内存安全错误,如空指针引用和数据竞争等,从而提高代码的稳定性和可靠性。Rust还支持并发编程,通过轻量级的线程和通道,开发者可以编写可靠、高性能的并行代码。此外,Rust还具有与C和C++兼容的特性,可以方便地集成现有的代码。 WASM是WebAssembly的缩写,它是一种面向Web的二进制代码格式。WASM能够以高效的方式在现代Web浏览器中运行,并且可以与JavaScript无缝集成。WASM提供了一种性能优于JavaScript的解决方案,特别适用于需要处理复杂计算或需要更高性能的应用程序。WASM还具有跨平台的能力,能够在不同的客户端设备上运行,包括桌面电脑、移动设备等。 在开发Web应用程序和游戏时,可以结合使用pixijs、Rust和WASM来实现更高效、更强大的功能。借助pixijs的强大渲染引擎,可以创建出色的图形效果和动画;Rust的安全性和并发能力可以提高应用程序的可靠性和性能;而WASM的高性能和跨平台特性则有助于在不同的客户端设备上实现高效的运行。综上所述,pixijs、Rust和WASM的结合可以为开发者带来更好的开发体验和用户体验。 ### 回答3: PixiJS是一个轻量级的JavaScript渲染引擎,用于创建各种类型的交互性和高性能的2D游戏、动画和应用程序。它具有简单易用的API和高度可扩展的功能,可以轻松地将图形和动画效果应用到Web应用程序中。PixiJS还支持WebGL和Canvas渲染,因此可以在不同的平台上运行,并提供了优化性能的工具和功能。 Rust是一种系统级编程语言,强调安全、并发和性能。它的设计目标是提供像C和C++一样的低级控制和高性能,但又避免了这些语言中常见的内存安全问题。Rust通过引入所有权和借用的概念,确保在编译时检查程序的内存安全性,并减少了常见的内存错误,例如数据竞争和空指针。 WebAssembly(简称Wasm)是一种用于在Web浏览器中运行底层代码的二进制指令格式。它是一种可移植、高性能且安全的技术,可以在Web浏览器中运行各种语言编写的程序,如Rust、C++和C#。Wasm在实现跨平台一致性和性能方面具有优势,并允许开发者利用其他语言的特性和库来开发Web应用程序和游戏。 PixiJS、Rust和Wasm之间可以有一些结合和互补的应用。例如,开发者可以使用Rust编写高性能的游戏逻辑和算法,并将其编译为Wasm模块,然后使用PixiJS进行图形渲染和交互性,从而创建出强大且高效的Web游戏。由于Rust的内存安全保证,开发者可以更轻松地编写复杂的游戏逻辑,而Wasm和PixiJS提供了更好的性能和可视化效果。总之,这三个技术结合可以帮助开发者创建出更具吸引力和优化的Web体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值