如何使用Artifactory中的货物仓库

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

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

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