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

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

鲁斯特已经连续五年位居榜首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设置远程存储库代理很简单:

  1. 创建一个新的Cargo远程存储库在Artifactory
    在Artifactory中创建一个新的Cargo远程存储库
  2. 命名远程存储库并为crate .io分配URL
    命名远程存储库并为crate .io分配URL
  3. 在你的申请包里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”的团队可能会建立并使用本地货物回购:

  1. 在Artifactory中创建名为“Cargo -local-projectx”的本地Cargo存储库。
  2. ~ / .cargo / Config.toml文件,配置一个注册表本地回购的定义。
    [registry] projectx = {index = "https://artprod.mycompany/artifactory/git/cargo-local_projectx. "Git "} [package] publish = "projectx"

    Cargo.toml通过设置package.publish指定发布到新的注册表:

    (包)……Publish = ["projectx"]…
  3. 当你发布你的板条箱到本地回购在Artifactory通过货物发布,指定——注册表选择。
    $ crate publish—注册表“projectx”
  4. 要使用本地存储库中的板条箱作为Project X应用程序源代码中的依赖项,请指定注册表伴随着版本
    [依赖项]some-crate ={版本= "1.0",注册表= "projectx"}

结论

通过在Artifactory中战略性地使用Cargo的远程和本地存储库,您将为您的开发投入一些最重要的最佳实践SDLC使DevOps成功。你可以确保所有Rust开发团队对依赖项和包的一致性,而原生Cargo支持不会妨碍他们。您还可以使用Artifactory的细粒度权限系统管理跨团队的访问。

自己试试Artifactory的Cargo存储库吧!你可以开始把这些方法付诸实践免费JFrog云帐户!

相关资源:2022世界杯阿根廷预选赛赛程