如何在工厂中使用货物仓库

鲁斯特已经连续五年位居榜首Stackoverflow对最受欢迎的编程语言的调查.被许多人视为C/ c++之后的下一步,该语言正迅速被嵌入式设备开发人员所接受,并成为物联网的强大系统。
在JFrog,我们注意到了这一点,并热切地欢迎Rust开发人员加入健壮的二进制文件管理,以及它如何有助于持续集成。我们已经将Cargo (Rust编程语言的包管理系统)添加到Artifactory中支持的存储库类型的长列表中。
Rust得到了什么,超过86%的开发人员给了它热情的大拇指?如何在Artifactory中使用Cargo存储库来加速软件开发生命周期?
为什么生锈呢?
Mozilla Research将Rust描述为“专注于速度、内存安全性和并行性的系统编程语言”。以下关键特性有助于实现这一愿景:
- 自动垃圾收集- Rust盾防止资源泄漏bug通过强制执行RAII(资源获取正在初始化),当拥有资源的对象超出作用域时释放资源。2022世界杯阿根廷预选赛赛程
- 强大的并发支持Rust设计用于安全高效地处理并发多线程编程。强类型,以及发送和同步特性帮助确保同步的,线程安全的操作,以及一个标准的线程库,使Rust代码并行运行。
- 安全检查Rust编译器执行内存安全和其他检查,以帮助确保干净、健壮的代码。
- 可重复使用的包装Rust提供了一个强大的系统,使开发人员能够创建可重用的代码单元,这些代码单元被组织成板条箱,可以在项目中私下共享,也可以与他人公开共享。
- 依赖关系管理- - -Rust的货物包管理器提供下载和编译包依赖项的工具。
这些特性,以及其他流行的语法特性(例如复杂数据类型,可变/不可变借用,以及可恢复/不可恢复错误处理)取悦开发者。
远程货物仓库
友好而活跃的Rust社区维护着板条箱。IO包注册表用于分发开源软件包。作为Rust程序员,应用程序的大多数核心服务都依赖于这个不断增长的公共库。
为了确保Rust构建的不间断速度和一致性,可以使用Artifactory远程存储库来代理crate .io。
Artifactory中的远程存储库充当在远程URL上管理的存储库或注册中心的缓存代理。远程回购的内容和本地源的内容没有区别。
当你将这种最佳DevOps实践付诸实践时,你和你的团队将获得:
- 速度局部性-代理将您经常使用的包拉到构建发生的计算环境中,无论是在云中还是在预置中,最大限度地减少网络延迟。
- 连接保护-你的箱子。IO代理仍然可用,即使当板条箱。IO服务器不是由于连接不良或中断,或者如果远程服务器本身遭遇停机.
- 不变性的执法一旦一个包的版本在代理中,它是不变的,在使用它的每个构建中都是一样的。这可以防止任何东西通过不适当的强制推入公共回购潜入您的构建。
为crate .io设置远程存储库代理很简单:
- 创建一个新的Cargo远程存储库在Artifactory

- 命名远程存储库并为crate .io分配URL

- 在你的申请包里
config.tomlmanifest文件,配置[registry]默认重定向到Artifactory远程回购,而不是crate .io。(见“介绍我”工件的浏览器说明。)
您的远程存储库代理将是只读的,这对于为构建引入开源依赖项的大多数日常工作来说应该是这样的。如果你需要发布到板条箱。Io,您可以为它定义一个名称(注册中心)用在——注册表当你这样做的时候。(只要确保你的package.publish键在清单中还指定了注册表名称,以便向其发布。#将artifactory设置为默认注册表,并保存传入的——registry参数[registry] default = "art-crates-remote" [registres] # artifactory中的远程存储库代理(只读)art-crates-remote index = {index = "https://artprod.mycompany/artifactory/git/cargo-remote。可选,使用with——registry发布到板条箱。IO crate - IO = {index = "https://github.com/rust-lang/crates.io-index"}
本地货仓
对于您将创建并仅在您的团队或部门内共享的板条箱,您应该维护私有Cargo注册中心。在Artifactory中,您可以通过本地Cargo存储库创建任意数量的注册中心。
例如,一个从事“项目X”的团队可能会建立并使用本地货物回购:
- 在Artifactory中创建名为“Cargo -local-projectx”的本地Cargo存储库。
- 在
~ / .cargo / Config.toml文件,配置一个注册表本地回购的定义。[registry] projectx = {index = "https://artprod.mycompany/artifactory/git/cargo-local_projectx. "Git "} [package] publish = "projectx"在
Cargo.toml通过设置package.publish指定发布到新的注册表:(包)……Publish = ["projectx"]… - 当你发布你的板条箱到本地回购在Artifactory通过
货物发布,指定——注册表选择。$ crate publish—注册表“projectx” - 要使用本地存储库中的板条箱作为Project X应用程序源代码中的依赖项,请指定
注册表伴随着版本.[依赖项]some-crate ={版本= "1.0",注册表= "projectx"}
结论
通过在Artifactory中战略性地使用Cargo的远程和本地存储库,您将为您的开发投入一些最重要的最佳实践SDLC使DevOps成功。你可以确保所有Rust开发团队对依赖项和包的一致性,而原生Cargo支持不会妨碍他们。您还可以使用Artifactory的细粒度权限系统管理跨团队的访问。
自己试试Artifactory的Cargo存储库吧!你可以开始把这些方法付诸实践免费JFrog云帐户!
相关资源:2022世界杯阿根廷预选赛赛程
- 货物防锈备忘单
- 如何建立和管理防锈包与货物
- 作为你的Artifactory货物注册表


