如何使用未发布在crates.io的Rust库,以dnp3 GitHub仓库为例
Rust引入未发布到crates.io的dnp3库的方法
方法1:直接关联远程Git仓库依赖
无需提前下载代码,直接修改项目Cargo.toml中的依赖配置即可:
[dependencies] # 可指定tag固定版本,对应你需要的0.9.1版本 dnp3 = { git = "https://github.com/stepfunc/dnp3", tag = "0.9.1" } # 若需要拉取主分支最新代码,可改为以下写法 # dnp3 = { git = "https://github.com/stepfunc/dnp3", branch = "master" }
Cargo会自动拉取对应仓库的代码完成编译,无需依赖crates.io的发布包。
方法2:本地路径依赖(适合需要二次修改库源码的场景)
- 先将dnp3仓库克隆到本地任意目录
- 修改项目
Cargo.toml的依赖配置,替换为本地仓库的实际路径:
[dependencies] dnp3 = { path = "/your/local/path/to/dnp3" } # 如果仓库放在你的项目同级目录,可写相对路径 # dnp3 = { path = "../dnp3" }
补充说明
- 两种配置方式都不会影响代码调用逻辑,你依然可以和仓库示例一样直接写
use dnp3;使用该库,和使用crates.io的公开包用法完全一致 - 如果出现依赖拉取异常,可执行
cargo clean清空本地缓存后重新构建项目
内容的提问来源于stack exchange,提问作者Ivan Raul Sanchez Diaz
相关产品推荐
相关产品推荐

