作为一名Rust驱动程序机箱开发人员,当被任何其他Rust程序使用时,我想在机箱安装/下载过程中执行以下步骤:
- 检查平台,即Windows、UNIX或macOS
- 从外部网站下载相应的特定于平台的二进制文件
- 设置指向下载位置的环境变量
我知道这在Node、Python或R中是可能的,但不确定在Rust中是否可能。
您可以使用Build脚本来实现这一点(但这不是您应该做的,请参阅下面的注释(。
该脚本将在货物开始构建您的库之前编译和执行。
- 在脚本中,您可以使用cfg属性来检查平台
- 有很多库可以通过HTTP下载一些东西,例如reqwest
- 您可以通过cargo设置环境变量:rustc env=VAR=VALUE
重要提示
大多数Rust用户并不期望构建脚本会有这种行为。这种方法可能有十几个问题。我脑海中只有几个:
- 首先可能存在安全问题
- 该方法将破坏客户端的构建
我认为最好将您需要的所有二进制文件作为机箱的一部分上传。您可以使用include_bytes!为此。