将 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 版权协议,转载请附上原文出处链接和本声明