Crates.io | learn-rust-publish |
lib.rs | learn-rust-publish |
version | 0.1.1 |
source | src |
created_at | 2024-02-22 00:23:57.491912 |
updated_at | 2024-02-22 00:44:06.985305 |
description | learn how to publish rust library |
homepage | |
repository | https://github.com/1847016090/learn-rust-publish |
max_upload_size | |
id | 1148682 |
size | 4,040 |
这一小节我们主要讲讲怎么讲我们写好的包发到crates.io上面分享给其他的开发者使用。
首先,我们需要在crates.io登录账号,目前它只支持github账号登录,登陆成功后,在头像处,我们进入,Account Setting,然后生成一个API TOKEN,接下来我们先创建一个包。
我们先生成一个新的库包,使用命令cargo new learn-rust-publish
,然后我们在github上面建立一个仓库,然后在我们的项目中执行git init -y
,然后使用git remote add origin 你的仓库地址
将项目和远程地址管理起来,将代码初始化到仓库中,后续在发布前也需要将代码更新到仓库中,再执行发布流程。
打开项目,进入到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"
其中前三项是创建项目时默认生成的,我们只需要添加后面几项即可。
然后我们先来执行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
就能成功发布我们的包了(我发布的包)。
当我们发布了一个版本的包之后,我们就不能再次覆盖这个包了。但是我们使用cargo yank --vers 0.1.0
撤销当前版本的包(只针对新包。如果有项目已经安装了当前版本的包,Cargo.lock文件已经存在当前版本,他依旧可以继续使用当前版本的包)。
当然,如果我们想取消撤销,我们执行cargo yank --vers 0.1.0 --undo
就行。
如果我们想发布新的版本,我们只需要修改我们Cargo.toml
文件中的version
字段即可