jmc*_*c42 3 electron neutralinojs tauri
我已经使用 Electron 多年,并且喜欢这样一个事实:我可以提供一个前端应用程序,该应用程序具有一堆可以捆绑在 dmg 中的后端服务(与数据库的连接等)。
然而 Electron 有点重量级,我一直在研究 NeutralinoJs 和 Tauri,看看我是否可以做同样的事情。我尝试过 NeutralinoJs,它确实适合捆绑前端应用程序,但它似乎没有任何编写后端服务和用 C++ 编写的机制,我怀疑这不太可能发生。
Tauri 是否允许您用 Rust 编写后端服务 - 我无法从文档中得知。
您需要了解 NeutralinoJS 的工作原理。
用 C++ 编写的 NeutralinoJS 在指定端口上启动服务器neutralino.config.json
"port": 0,
Run Code Online (Sandbox Code Playgroud)
端口 0 意味着 Neutralino 将选择一个随机端口并在其上启动服务器,该服务器为我们在配置文件中指定的文件夹内的所有内容提供服务:
"documentRoot": "/resources/",
Run Code Online (Sandbox Code Playgroud)
启动服务器后,Neutralino 使用本机WebViewAPI 启动一个新窗口,并告诉WebView加载我们想要的 URL,在我们的例子中,它将使用127.0.0.1我们指定的端口。
但由于这WebView不能直接修改我们的存储或获取有关计算机的信息,Neutralino 有一些用 C++ 编写的预定义 API 来查看和编辑我们计算机上的信息。
由于我们使用 JavaScript,Neutralino 的作者为我们提供了一个桥梁,通过它我们可以访问所有用 C++ 编写的预定义 API,而这个为我们提供这些东西的桥梁是neutralino.js.
neutralino.jsWebView处理我们和 Neutralino 进程之间的所有通信。
的路径neutralino.js也在配置文件中定义:
"clientLibrary": "/resources/js/neutralino.js",
Run Code Online (Sandbox Code Playgroud)
因此,如果您想使用“后端”,您有 2 个选择,您可以直接在 Neutralino 的源代码中添加这些 API,也可以使用一种更好的方式在 Neutralino 中使用后端,称为“扩展”。