【Rust日报】2024-04-02 如何编写一个既是 bin 又是 lib 的项目

💡 原文中文,约1300字,阅读约需4分钟。
📝

内容提要

本文讨论了在Rust项目中同时包含lib.rs和main.rs文件的技巧,使得一个包既可以是库又可以是二进制文件。作者尝试使用Cargo的optional dependencies和features来实现依赖分离,但效果不如预期。最终建议创建两个独立的包,一个用于库,一个用于二进制文件。

🎯

关键要点

  • 文章讨论了Rust项目中同时包含lib.rs和main.rs文件的技巧。
  • 该技巧使得一个包既可以是库(lib)又可以是二进制文件(bin)。
  • 尝试使用Cargo的optional dependencies和features来实现依赖分离,但效果不如预期。
  • default features可能会影响库的用户体验。
  • 建议创建两个独立的包,一个用于库,另一个用于二进制文件,以便为两者设置不同的特性和依赖。
  • Cargo团队意识到这个问题,并有一些提案正在准备中。
  • 如果不是为了尝试新方法,最好还是创建两个包。
➡️

继续阅读