作为 Rust 驱动程序 crate 开发人员,我想在任何其他 Rust 程序使用我的 crate 安装/下载期间执行以下步骤:
- 检查平台,即 Windows 或 UNIX 或 macOS。
- 从外部网站下载相应的特定于平台的二进制文件。
- 设置指向下载位置的环境变量。
我知道这在 Node、Python 或 R 中是可行的,但不确定在 Rust 中是否可行。
最佳答案
您可以使用 Build script实现这一目标(但这不是您应该做的,请参阅下面的注释)。
脚本将在 cargo 开始构建您的库之前编译和执行。
- 在脚本中你可以使用cfg attribute检查平台。
- 有很多库可以通过 HTTP 下载一些东西,例如 reqwest
- 您可以通过cargo:rustc-env=VAR=VALUE设置环境变量
重要提示
大多数 Rust 用户并不期望构建脚本会出现这种行为。该方法可能存在许多问题。只有少数来 self 的头顶:
- 首先可能存在安全问题。
- 该方法将破坏客户端的构建。
我认为最好将您需要的所有二进制文件作为箱子的一部分上传。您可以使用 include_bytes!为此。
关于rust - 我们可以在箱子安装期间下载一些东西并设置环境变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65302315/