如何建立和管理防锈包与货物

JFrog支持
2021-08-03 10

Rust以专注于安全性的编程语言而闻名。但Rust的另一个突出特性是,与许多其他语言不同,它提供了自己的构建系统和包管理器,即Cargo。

请继续阅读关于如何使用Cargo管理Rust包的入门知识。

Rust包是什么?

在Rust中,包是一组可用于部署用Rust编写的应用程序的文件。Rust包有几个组件:

  • 一个或多个Rust源代码文件,其中包含实现包旨在提供的任何功能的代码。
  • 如果源代码文件需要一个库才能运行,则可以选择一个库文件。
  • 一个名为Cargo的配置文件。Toml,它定义了如何将包的各种其他组件组合在一起,以部署可用的应用程序或服务。

源文件和库称为板条箱。请注意,您可能有时会听到Rust开发人员交替使用术语“板条箱”和“包”,但从技术上讲,这是有区别的:板条箱是包的一个单独组件,而包是当您将一个或多个板条箱与部署配置文件(即Cargo)组合在一起时得到的。toml文件)。

您可以将Rust包视为类似于Docker映像或Debian包,主要区别在于Rust包包含必须在部署之前编译的源代码。

什么是货物?

Cargo是用于构建和管理Rust包的工具。Cargo允许您通过组合板条箱来创建包,以及构建和部署这些包。

Cargo类似于Make之类的工具(如果需要的话,也可以使用Make构建Rust包),但它是Rust社区专门为管理Rust包而构建的。也就是说,Cargo可以用来管理用其他语言编写的代码,包括C语言,如果您正在开发一个除Rust源代码外还包含其他代码的应用程序,那么C语言非常有用。

如何管理Rust包与货物

Cargo的语法和方法非常简单。

创建一个包

要使用Cargo,你首先需要创建一个包:

装载新的your_project_name

您将看到Cargo在当前工作目录中创建了一个名为your_project_name的新目录。新目录包含以下内容:

  • 一个默认的货物。toml文件。
  • src/目录,其中包含一个名为main.rs的文件。主要。rs是一个Rust源文件,用于Hello World!Cargo默认创建的程序。

配置包

你可以直接构建这些文件,如果你只是想部署Rust的Hello World!程序。然而,要部署一个真实的应用程序,你首先需要将你的源文件移动到你包的src/目录下:

cp /道路/ / /源文件。rs your_project_name / src

您还需要修改Cargo。Toml以适应应用程序的配置和任何依赖项。详情载于https://doc.rust-lang.org/cargo/reference/manifest.html

构建包

有了源代码和Cargo。Toml文件更新后,您可以构建包:

货物建立

编译器将生成二进制文件,并将它们存储在名为target/的新子目录中,该子目录位于包的src/目录旁边。

运行包

现在,您可以使用简单的命令运行应用程序:

货物运行

使用crate .io部署Rust包

此时,您已经有了一个可以在本地运行的Rust包。但是,如果您希望将其部署到生产系统(可能与您的本地构建系统不同)或与其他用户共享应用程序,该怎么办呢?

克拉特斯就在那里。IO进来了。板条箱。io是一个用于托管和分发Rust包的公共注册表。换句话说,就是crate。io之于Rust,就像Docker Hub之于Docker。

虽然在技术上没有什么阻止你在其他地方托管编译过的Rust包,比如GitHub, Rust开发者不要这样做因为他们的目标是制造板条箱。io Rust社区的官方可信包注册表。

使用Artifactory增强Rust包管理

您可以从Cargo中获得更多的功能和特性结合它与JFrog Artifactory作为一个货物注册表

除了直接与托管在crate上的包交互之外。Artifactory允许您创建私有的本地Cargo存储库,在那里您可以比crate对访问配置有更多的控制。io支持。本地存储库对于需要在内部共享Cargo包并希望避免通过公共注册中心分发相关的安全和性能问题的企业特别有用。

您还可以使用Artifactory在本地缓存Cargo包,这使得离线使用Cargo更容易,并通过消除在构建新的Cargo包之前从Internet下载依赖项或其他数据的需要来提高性能。Artifactory还支持Rust包的版本管理,这样您就可以轻松地跟踪版本并归档旧包。

学习如何与Artifactory建立Cargo

使用货物和防锈备忘单