Workflow Rust库开发工作流

Workflow Rust库开发工作流,workflow,rust,rust-cargo,Workflow,Rust,Rust Cargo,在Rust(+Cargo)中开发库时,如何实现快速重新编译/测试循环 开发应用程序时很容易,我: 在代码中进行更改 切换到终端并运行cargo run 请参阅编译器反馈 但现在我想将我的应用程序的一部分提取为库,并将其发布到GitHub上。 我想继续开发我的应用程序,但现在将此库作为一个依赖项。我将同时开发库和应用程序 我现在如何获得相同的快速反馈 库和应用程序都将在同一台机器上开发,我想对库进行更改,相应地更新应用程序,并查看编译器的反馈 我猜我可以将我的库用作Cargo.toml中的依赖

在Rust(+Cargo)中开发库时,如何实现快速重新编译/测试循环

开发应用程序时很容易,我:

  • 在代码中进行更改

  • 切换到终端并运行
    cargo run

  • 请参阅编译器反馈

但现在我想将我的应用程序的一部分提取为库,并将其发布到GitHub上。 我想继续开发我的应用程序,但现在将此库作为一个依赖项。我将同时开发库和应用程序

我现在如何获得相同的快速反馈

库和应用程序都将在同一台机器上开发,我想对库进行更改,相应地更新应用程序,并查看编译器的反馈


我猜我可以将我的库用作Cargo.toml中的依赖项,并在每次我想更新应用程序的依赖项时运行
Cargo update
,但这会有点慢,因为每次都必须从github下载代码并重新编译所有依赖项。

您可以使用Cargo的这一未记录的功能。将以下行添加到
~/.cargo/config
文件(或
/path/to/your/binary/project/.cargo/config
以限制对二进制项目的影响):

从现在起,依赖于您的库的每个货物包(或
/path/to/your/binary/project
根目录下的货物包)将使用
/path/to/your/library
作为其源代码,而不管此包清单中指定了什么,因此您可以在程序清单中保留Git repo URL。希望将来会记录此功能

更新


现在,

中记录了这一点,我觉得您也可以将其添加到单个项目中(使用
cargo.toml
旁边的
.cargo/config
,而不是
~
),但我可能记错了。@dbaupp,您可能是,谢谢!奇怪,但这对我不起作用。当我更新货物时,货物仍然连接到GitHub@ValentinVasilyev,
cargo update
始终更新远程存储库,但在构建过程中,将使用通过
cargo build
本地路径进行的更新。@Valentivasilyev,这实际上是现在记录的,不确定已经记录了多长时间。
paths = ["/path/to/your/library"]