在写 rust 小工具, 碰到个问题, 依赖的第三方 library 有几个小 bug, 我能想到的常规做法可能是 fork 下这个第三方库, 改完后也上传到 crate.io, 然后引用这个修改后的 package, 最后提个 PR 给原始仓库的作者.
这一套下来感觉比较麻烦, 有没有办法直接将这个第三方 package 嵌入我的 rust 工程? 能想到比较笨的办法是直接把这个库的源码拷贝进我的工程, 然后将它的 Cargo.toml 内容集成进我的配置文件, 它的源文件嵌入我的工程.但是这么修改破坏了原本的工程结构.
有没有这样一种办法, 以类似离线的方式引用这个库, 其它库还是在线引用, 但是这个离线库跟我自己的 rust 工程存在同一个 git 仓库, 这样我能方便修改库的代码. 相当于我的一个 git 仓库中存在 2 个独立的 rust 工程, 1 个是我的工具工程, 另一个是拷贝过来的 库 工程, 但是工具工程可以用 package 的方式引用这个库工程.
这么做可以快速把工具开发出来, 另一方面, 等库的原作者接受 PR 后, 也能方便把引用的库切换回去, 而不用调整工程结构, 只要把引用的 package 修改下, 然后从工程仓库删除修改后的 library 即可.
1
ie88 9 天前 1
关键字:cargo, patch
[Patching Cargo Dependencies]( https://gatowololo.github.io/blog/cargo-patch/) |