Tauri中启动可执行程序,软软AI中集成IPFS

465 阅读1分钟

Tauri中启动可执行程序,软软AI中集成IPFS

需求简述

软软AI桌面版中需求

在软软AI桌面版中存储需要接入IPFS(私有网络)去中心分布式文件系统。关于如何使用IPFS Cluster构建IPFS的私有网络后续单独记录一下,如有需要联系笔者)。IPFS主版本是使用golang实现的,因此考虑直接使用构建好的版本,将二进制集成到工程中,然后程序启动的时候使用命令行进行启动。

Tauri中集成二进制可执行程序

  • 方便集成第三方的程序
  • 直接在rust代码或者前端代码中,直接通过tauri提供的接口进行调用等操作

tauri官方的文档 next--tauri.netlify.app/next/guides…

放入二进制文件

目录结构

1683879518288.jpg

如图所示:在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);
            }
        }

如何需要在前端调用,参见官方的文档。

详细的代码可以参见:持续更新维护的一个桌面版应用

github.com/rrkeji/rrai…