内容简介:公司内部要使用或推广必须要满足私有性和保密性,公司内部的代码是不可以公开到公网上的。rust的公开代码仓库是crates.io,那么私有仓库的解决方案是什么?我们一起来探索一下。国外网站reddit有人发出了对私有仓库的需求并提问到:Private "crates.io"
背景
公司内部要使用或推广必须要满足私有性和保密性,公司内部的代码是不可以公开到公网上的。rust的公开代码仓库是crates.io,那么私有仓库的解决方案是什么?我们一起来探索一下。
国外网站reddit有人发出了对私有仓库的需求并提问到:
Private "crates.io"
Hi,
I'm trying to advocate for Rust in my company, and one of the needs will be to have our own "crates.io" so our (closed source) crates can be managed by cargo.
Is there a way to do that appart from specifying git urls?
另外,这位 程序员 还不想通过git来管理仓库,因为他的公司不用git。
withoutboats大牛的解决方案来了!2017年10月,他说道:
本周,cargo获得了一个新功能!现在您可以从其他仓库下载依赖包也可以从ractes.io下载的依赖包。这是重要的一步,使组织能够通过cargo分发其内部代码库,而无需将这些内部代码库上传到公共仓库。
此功能将仅在夜间可用,并用alternative-registries这个feature gate来进行封闭。自1.0版本以来,我们已经使用feature gate 迭代rustc中新的不稳定的特性,但这是我们第一次在Cargo中使用feature gate。
这里我解释一下此段话。因为rust的发布版本是很有节奏的,按每六周一个版本的节奏分为nightly、beta、stable三种版本。rust还在发展阶段,版本迭代节奏快,开发团队想要快速发新功能并在外部快速得到验证,每个在开发的功能都会发布在nightly版本。nightly版本是不稳定的,发布后再过六周就会自动变为beta版本(期间会修改bug)。beta版本再过六周就会成功稳定版本。节奏图如下:
nightly: * - - * - - * - - * - - * - - * - * - * | | beta: * - - - - - - - - * * | stable: *
我们继续大牛的讲述:
自1.0之前起,cargo已与crate.io仓库结合成一对。这个仓库包含数千个crate,它们构成了rust的代库库生态系统的大部分,cargo使下载和使用crates.io中的代码库变得非常方便。
但是,有很多原因使用户可能不希望将其代码库上传到cractes.io。特别是,专有代码不适用于crates.io,crates.io允许任何人下载它包含的任何crate。因此,cargo总是支持其他来源的仓库。具体来说,它支持从文件路径或Git仓库中拉取依赖包。
好了,也就是说可以使用git仓库来做私有仓库。哈哈
另一方面,到目前为止,cargo只允许你一次依靠一个仓库的crate。在许多情况下,像crates.io这样的仓库比git更好,因为它们能够更有效地管理多个版本的crate,并为您执行版本解析。使用这个新功能,您将能够从ractes.io以外的仓库中拉取crate。
好了,而且这个功能出来后,对于同一个rust项目用户可以同时使用两种上以的仓库。
实操
...
以上所述就是小编给大家介绍的《rust的私有代码仓库》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 实战maven私有仓库三部曲之二:上传到私有仓库
- 实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库
- docker私有仓库搭建
- 企业私有Harbor仓库
- Docker 私有仓库搭建
- Docker私有仓库搭建
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。