RUST 每日一省:发布到crates.io

github是开源代码分享的地方,rust的开源项目除了github,我们还可以将其发布到 crates.io 上,然后其它用户就可以使用cargo进行安装使用了。其实步骤很简单,只有三条命令了,我们一次来看一下。

1、cargo package

首先,让 Cargo 帮你打个包:

cargo package 命令会创建一个文件(这里是 target/package/xq-derive-0.1.0.crate),其中包含库的所有源文件,以及 Cargo.toml。这个文件就是你要上传到 crates.io 与世界共享的(可以通过 cargo package --list 来查看其中包含什么文件)。Cargo 随后会基于这个 .crate 文件构建库,就像最终用户一样,以确保没有问题。

你可能会遇到很多问题,比如:

复制代码
error: all dependencies must have a version specified when packaging.

这是要求你的项目里,引用的crate必须是在crates.io上的,不能是本地引用的例如这种------image = {path = "vendor/image"}。

复制代码
warning: manifest has no description, license, license-file, documentation,

这种是,Cargo 认为 Cargo.toml 中缺少一些对下游用户来说非常重要的信息,比如你的代码以什么许可来发布。警告信息中的 URL 是很好的参考资源,因此这里就不详细解释了。简单来说,只要在 Cargo.toml 中添加以下几行内容就可以消除警告:

复制代码
[package]
name = "xq-derive"
version = "0.1.0"
edition = "2018"
authors = ["Kent Xu <xq-310@163.com>"]
description = "Used to write eDSL proc-macro ."
license = "MIT OR Apache-2.0"
homepage = "https://github.com/XuHugo/xq-derive"
repository = "https://github.com/XuHugo/xq-derive"
documentation = "https://github.com/XuHugo/xq-derive"

2、cargo login

执行命令前,先登录到 crates.io 并取得 API 密钥。可以使用github账号直接登入,然后再个人的设置页面,找到API Tokens,生成新的Token;然后使用命令:

复制代码
 cargo login abcdefghijklmnopqrstuvwxyz012345

该命令将告诉 Cargo 你的 API Token,然后将其存储在本地的 ~/.cargo/credentials.toml 文件中。注意这个 API 密钥就像密码一样要保密。所以要记住只在你自己控制的计算机中运行这个命令。

3、cargo pushlish

直接项目根目录下,执行 cargo publish,就可以了。

需要注意的是,由于平时网络问题,我都使用国内的源,所以需要再命令后添加 --registry crates-io.

相关推荐
春日见10 分钟前
眼在手上外参标定保姆级教学---离线手眼标定(vscode + opencv)
linux·运维·开发语言·人工智能·数码相机·计算机视觉·matlab
宵时待雨16 分钟前
C语言笔记归纳20:文件操作
c语言·开发语言·笔记·算法
程序员爱钓鱼1 小时前
Node.js 编程实战:图像与文件上传下载
前端·后端·node.js
程序员爱钓鱼1 小时前
Node.js 编程实战:日志管理与分析
后端·面试·node.js
kkai人工智能3 小时前
AI写作:从“废话”到“爆款”
开发语言·人工智能·ai·ai写作
lizz317 小时前
C++模板编程:从入门到精通
java·开发语言·c++
吴佳浩7 小时前
Python入门指南(五) - 为什么选择 FastAPI?
后端·python·fastapi
shoubepatien7 小时前
JAVA -- 05
java·开发语言
寰天柚子7 小时前
Java并发编程中的线程安全问题与解决方案全解析
java·开发语言·python
沐知全栈开发7 小时前
Bootstrap 下拉菜单:设计与实现指南
开发语言