如何使用Cargo构建和管理Rust包
Rust以专注于安全性的编程语言而闻名。但是Rust的另一个突出特性是,与许多其他语言不同,它提供了自己的构建系统和包管理器,称为Cargo。
继续阅读关于如何使用Cargo管理Rust包的入门文章。
什么是Rust包?
在Rust中,包是一组文件,可用于部署用Rust编写的应用程序。Rust包有几个组件:
- 一个或多个Rust源代码文件,其中包含实现包旨在提供的任何功能的代码。
- 如果源代码文件需要库来运行,则可以选择库文件。
- 一个名为Cargo的配置文件。它定义了包的各种其他组件应该如何组合在一起以部署可用的应用程序或服务。
源文件和库称为crate。请注意,您有时可能会听到Rust开发人员交替使用术语“crate”和“package”,但从技术上讲,它们是有区别的:crate是包的单个组件,而包是将一个或多个crate与部署配置文件(即Cargo)配对时得到的。toml文件)。
您可以将Rust包视为类似于Docker映像或Debian包,主要区别在于Rust包包含必须在部署之前编译的源代码。
什么是货物?
Cargo是构建和管理Rust包的工具。Cargo允许您通过将crate组合在一起来创建包,以及构建和部署这些包。
Cargo类似于Make这样的工具(如果需要,也可以用来构建Rust包),但它是Rust社区专门为管理Rust包而构建的。也就是说,Cargo可以用来管理用其他语言编写的代码,包括C语言,如果您正在开发的应用程序除了Rust源代码之外还包含其他代码,这将非常有用。
如何用Cargo管理Rust包
Cargo的语法和方法非常简单。
创建一个包
要使用Cargo,首先需要创建一个包:
Cargo new your_project_name
您将看到Cargo在当前工作目录中创建了一个名为your_project_name的新目录。新目录包含以下内容:
- 默认的Cargo。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。当文件更新后,你可以构建这个包:
货物建立
编译器将生成二进制文件,并将它们存储在一个名为target/的新子目录中,该子目录与包的src/目录一起存在。
运行包
现在,你可以用一个简单的命令来运行应用程序:
货物运行
使用crate .io部署Rust包
至此,您有了一个可以在本地运行的Rust包。但是,如果您希望将其部署到生产系统(可能与您的本地构建系统不同)或与其他用户共享应用程序,该怎么办?
那就是克拉底。IO进来了。板条箱。io是一个托管和分发Rust包的公共注册表。换句话说,就是箱子。io之于Rust就像Docker Hub之于Docker。
虽然在技术上没有什么可以阻止你在其他地方托管编译好的Rust包,比如在GitHub上,Rust开发人员不鼓励这种做法因为他们的目标是制造箱子。它是Rust社区的官方可信包注册表。
用Artifactory增强Rust包管理
您可以从Cargo中获得更多的功能和特性结合JFrog Artifactory作为一个货物注册表。
除了直接与存放在crate上的包交互之外。Artifactory允许您创建私有的本地Cargo存储库,在那里您可以比crate更好地控制访问配置。io支持。本地存储库对于需要在内部共享Cargo包并希望避免通过公共注册中心分发它们所带来的安全性和性能问题的企业尤其有用。
您还可以使用Artifactory在本地缓存Cargo包,这使得脱机处理Cargo更容易,并通过消除在构建新的Cargo包之前从Internet下载依赖项或其他数据的需要来提高性能。Artifactory也支持Rust包的版本管理,这样您就可以轻松地跟踪发布并存档旧的包。
学习如何设置货物与Artifactory。
使用货物和铁锈备忘单
