#publish #io #how #token #learn

learn-rust-publish

learn how to publish rust library

2 releases

0.1.1 Feb 22, 2024
0.1.0 Feb 22, 2024

#605 in Development tools

34 downloads per month

MIT/Apache

5KB

13.4 将包发布在crates.io

这一小节我们主要讲讲怎么讲我们写好的包发到crates.io上面分享给其他的开发者使用。

13.4.1 在crates.io上面登录获取API Token

首先,我们需要在crates.io登录账号,目前它只支持github账号登录,登陆成功后,在头像处,我们进入,Account Setting,然后生成一个API TOKEN,接下来我们先创建一个包。

13.4.2 配置一个发布包

我们先生成一个新的库包,使用命令cargo new learn-rust-publish,然后我们在github上面建立一个仓库,然后在我们的项目中执行git init -y,然后使用git remote add origin 你的仓库地址将项目和远程地址管理起来,将代码初始化到仓库中,后续在发布前也需要将代码更新到仓库中,再执行发布流程。

13.4.2.1 为包添加元数据

打开项目,进入到Cargo.toml中,在[package]中配置元数据信息,如下:

[package]
# 创建项目默认添加
name = "learn-rust-publish"
version = "0.1.0"
edition = "2021"

# 需要添加
email = "your email"
description = "learn how to publish rust library"
license = "MIT OR Apache-2.0"
repository = "https://github.com/1847016090/learn-rust-publish"

其中前三项是创建项目时默认生成的,我们只需要添加后面几项即可。

13.4.2.2 登录 & 发布

然后我们先来执行cargo login命令执行登录,然后将我们刚才生成的API TOKEN填入即可登录成功。我们接着再执行cargo publish,发现如下报错:

the remote server responded with an error: A verified email address is required to publish crates to crates.io. Visit https://crates.io/settings/profile to set and verify your email address.

我们需要跟随着链接去验证一下我们的邮箱即可。验证完后,再执行cargo publish就能成功发布我们的包了(我发布的包)。

13.4.2.3 撤销或重新发布新版本包

当我们发布了一个版本的包之后,我们就不能再次覆盖这个包了。但是我们使用cargo yank --vers 0.1.0撤销当前版本的包(只针对新包。如果有项目已经安装了当前版本的包,Cargo.lock文件已经存在当前版本,他依旧可以继续使用当前版本的包)。

当然,如果我们想取消撤销,我们执行cargo yank --vers 0.1.0 --undo就行。

如果我们想发布新的版本,我们只需要修改我们Cargo.toml文件中的version字段即可

No runtime deps