Tauri中启动可执行程序,软软AI中集成IPFS
需求简述
软软AI桌面版中需求
在软软AI桌面版中存储需要接入IPFS(私有网络)去中心分布式文件系统。关于如何使用IPFS Cluster构建IPFS的私有网络后续单独记录一下,如有需要联系笔者)。IPFS主版本是使用golang实现的,因此考虑直接使用构建好的版本,将二进制集成到工程中,然后程序启动的时候使用命令行进行启动。
Tauri中集成二进制可执行程序
- 方便集成第三方的程序
- 直接在rust代码或者前端代码中,直接通过tauri提供的接口进行调用等操作
tauri官方的文档 next--tauri.netlify.app/next/guides…
放入二进制文件
目录结构
如图所示:在src-tauri目录下新建一个binaries目录,然后在这个目录下根据构建的目标不同建立不同的目录。最后把相应的二进制文件放到目录下。
配置文件修改
配置文件修改示例如下:
"shell": {
"all": false,
"sidecar": true,
"open": true,
"scope": [
{
"name": "binaries/ipfs",
"sidecar": true,
"args": [
"daemon"
]
}
]
},
代码中启动
//
let (mut rx, mut child) = tauri::api::process::Command::new_sidecar("ipfs")
.expect("failed to create `ipfs` binary command")
.args(["daemon"])
.spawn()
.expect("Failed to spawn sidecar");
// read events such as stdout
while let Some(event) = rx.recv().await {
if let tauri::api::process::CommandEvent::Stdout(line) = event {
tracing::debug!("IPFS:{}", line);
}
}
如何需要在前端调用,参见官方的文档。
详细的代码可以参见:持续更新维护的一个桌面版应用