V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kyonn
V2EX  ›  Rust

咨询 rust 如何方便修改, 集成第三方 crate.

  •  
  •   kyonn · 9 天前 · 449 次点击

    在写 rust 小工具, 碰到个问题, 依赖的第三方 library 有几个小 bug, 我能想到的常规做法可能是 fork 下这个第三方库, 改完后也上传到 crate.io, 然后引用这个修改后的 package, 最后提个 PR 给原始仓库的作者.

    这一套下来感觉比较麻烦, 有没有办法直接将这个第三方 package 嵌入我的 rust 工程? 能想到比较笨的办法是直接把这个库的源码拷贝进我的工程, 然后将它的 Cargo.toml 内容集成进我的配置文件, 它的源文件嵌入我的工程.但是这么修改破坏了原本的工程结构.

    有没有这样一种办法, 以类似离线的方式引用这个库, 其它库还是在线引用, 但是这个离线库跟我自己的 rust 工程存在同一个 git 仓库, 这样我能方便修改库的代码. 相当于我的一个 git 仓库中存在 2 个独立的 rust 工程, 1 个是我的工具工程, 另一个是拷贝过来的 库 工程, 但是工具工程可以用 package 的方式引用这个库工程.

    这么做可以快速把工具开发出来, 另一方面, 等库的原作者接受 PR 后, 也能方便把引用的库切换回去, 而不用调整工程结构, 只要把引用的 package 修改下, 然后从工程仓库删除修改后的 library 即可.

    2 条回复    2024-12-18 10:24:02 +08:00
    ie88
        1
    ie88  
       9 天前   ❤️ 1
    关键字:cargo, patch
    [Patching Cargo Dependencies]( https://gatowololo.github.io/blog/cargo-patch/)
    kyonn
        2
    kyonn  
    OP
       9 天前
    @ie88 感谢, 看了下应该就是我想要的效果. 十分精准的关键字.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5451 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 06:57 · PVG 14:57 · LAX 22:57 · JFK 01:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.