将 Rust 库发布到 crates.io

将 Rust 库发布到 crates.io

Library publishing to crates.io

在这篇简短的文章中,我将快速展示如何将 rust 库发布到 crates.io。发布一个 crate 允许将库分发到全世界并促进重用。我们可以在多个项目中使用我们的库,只需在我们的 货运.toml 文件。

出于本演示的目的,我将使用我在其他文章中创建的库。 — 简单的 PostgreSQL 连接包装器 与我的 API 开发项目一起工作。我将通过添加所有必需的元数据并使用 货物 发布我的图书馆。

要求

要将库发布到 crates.io,我们需要在我们的 货运.toml。 发布需要许可证、描述、关键字、类别。我们已确保在发布之前已填写所有这些信息。

**姓名** = **“pgdb-lib-rs”  
 版本** = **“0.1.0”  
 编辑** = **《2021》  
 描述** = **“一个简单的数据库包装器,用于在 API 开发项目中使用 Rust。”  
 执照** = **“和”  
 关键词** = [ **“postgres”** , **“数据库”** , **“包装”** , **“postgres 库”** ]  
 **类别** = [ **“数据库实用程序”** , **“数据库包装器”** ]  
 **排除** = [ **“/。主意”** ]

这里要注意的一件事是,如果我们有自定义许可证,我们需要在代码中指定 LICENSE 文件的路径。如果它是 MIT 或 Apache 许可证,我们可以指定 执照 键入键。有了这个微小的变化,我们的 货运.toml 文件现在拥有发布 crate 的所有内容。

自述文件

将我们的库上传到 crates.io 以进行 rust 的另一个要求是要有一个 Readme.md 文件。每当有人访问我们的图书馆主页时,这将显示为 crates.io 上的描述。

在同一个项目中,我们现在添加一个新的 README.md 文件来描述我们的库和一些基本文档。

**#** 自述文件 *** 尚未准备好供公众使用。欢迎提出建议/评论! *** 这是一个基于 SQLX 和 Postgres 的简单 Rust Wrapper。  
  
 要连接到 Postgres,请使用以下命令  
  
 **``` _锈  
_ DATABASE_URL=postgres://postgres:[[email protected]](/cdn-cgi/l/email-protection):5432/fenvoxdb?currentSchema=app  
 异步 fn main(){  
 let db = Database::new().await.expect("数据库连接失败");  
 让行: (i64,) = sqlx::query_as("SELECT $1")  
 .bind(150_i64)  
 .fetch_one(db.get_pool()).await.expect("发生错误");  
 }  
 ```**

我刚刚为我的库添加了一些基本的初始化。因为我将成为现在使用它的人。我会尝试更新它,因为我会继续努力。

到这个时候,我们的库已经准备好发布了。是时候在 crates.io 上创建一个帐户并开始设置我们的发布了。

登记

下一步是在 crates.io 上注册一个帐户并获取 API 令牌。访问 https://crates.io/ 使用 GitHub 创建帐户。

从您的个人资料下拉列表中,查看您的帐户个人资料,然后转到 API 密钥部分。

crates.io account settings.

创建一个新的 API 令牌。为其命名并复制 API 密钥。请注意,您只能访问此密钥一次。如有必要,请将其存放在安全可靠的地方。

一旦我们有了 API 密钥,就可以使用该密钥开始发布了。

从您的库文件夹中,打开一个终端并输入

 货物登录

Cargo 现在将要求您提供 API 密钥。粘贴您在上一步中复制的密钥,然后按 Enter。

现在,这将允许货物代表您发布板条箱。

请注意,要发布库,您还需要在您的帐户中提供经过验证的电子邮件。确保在启动发布命令之前更新您的电子邮件并进行验证。

试运行和发布

这是最后一步。我们现在在发布之前进行一次试运行,以验证没有错误。如果一切顺利,我们就可以发布我们的库并在线查看。

 货物发布--dry-run

如果一切看起来都不错,命令输出的最后一行应该是这样的

 警告:由于空运行而中止上传

现在是发布它的时候了。只需使用上面没有空运行标志的命令。 cargo 将构建您的项目并将其发布到远程 crates 注册表。

 货物出版

如果一切顺利,我们现在可以在 crates.io 上查看我们的库。

[

crates.io:Rust 包注册表

crates.io 上发布的库链接

](https://crates.io/crates/pgdb-lib-rs)

这是与您的团队/整个世界共享库的简单方法。尽管它是一个非常简单的库,但作为公共库使用它还缺少很多东西。我鼓励大家编写一个小型库并在 crates.io 上维护它。随着时间的推移,我将更新我的产品以准备好生产,学习如何记录公共 API,并在代码文档生成中使用。

一开始感觉很难,但随着练习会变得更容易。编写干净代码的最佳方法是遵循最佳实践。无论代码多么难或基本。请记住,如果没有先构建一个像这样的简单库,没有人会构建一个流行的库,而且还有很大的改进空间!

请继续订阅并关注我以获取更多信息!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/39954/37153009

posted @ 2022-09-30 09:40  哈哈哈来了啊啊啊  阅读(284)  评论(0编辑  收藏  举报