制作crate并发布到Crates.io

准备

发布 crate 时, 一旦发布无法修改,无法覆盖, 因此要注意邮箱等一些个人信息

访问crates.io帐号设定页面,生成Token

并在命令行 执行 cargo login your token

此命令将告诉 Cargo 你的 API 令牌, 并将其存储在本地 ~/.cargo/credentials

crates.iocrate的名字, 会采取先到先得的方式分配.


打包 & 发布

对于 Cargo.toml:

rs 复制代码
[package]
name = "dashen"
version = "0.1.1"
authors = ["xxxx <x@xxxxxx.tech>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
ferris-says = "0.2"

执行cargo publish:

这是因为缺少一些关键信息:关于该 crate 用途的描述和用户可能在何种条款下使用该 cratelicense

想要修正这个错误, 需要在 Cargo.toml 中引入这些信息.

描述通常是一两句话, 它会出现在 crate 的搜索结果中和 crate 页面里.

对于 license 字段, 需要一个 license 标识符值(license identifier value)

Linux 基金会的 Software Package Data Exchange (SPDX) 列出了可以使用的标识符

例如指定 crate 使用 MIT License,可增加 MIT 标识符

rs 复制代码
[package]
name = "dashen"
version = "0.1.1"
authors = ["xxxx <xxx@xxxxx.tech>"]
edition = "2018"
description = "the first crate by xxxxx"
license = "MIT"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
ferris-says = "0.2"

再次执行 cargo publish:

这是因为没有指定git仓库

新建一个仓库,指定为远程仓库,并提交代码

再次执行 cargo publish:

此时也能在crates.io搜到刚刚发布的crate


英文版文档:

Publishing a Crate to Crates.io

中文版文档:

将 crate 发布到 Crates.io

相关推荐
小村儿15 分钟前
连载12- Cluade code 的MCP 到底还用不用
前端·后端·ai编程
IT_陈寒18 分钟前
Vite静态资源引用差点把我逼疯,原来要这样处理
前端·人工智能·后端
子兮曰30 分钟前
WSL 配 GPU 用 Docker 的折腾指南(2026 年版)
linux·前端·后端
Nturmoils1 小时前
从 mysql 命令切到 ksql,第一步先把连接搞明白
后端
鹏多多1 小时前
锐评CSDN最近上线的AI数字营销:烂完之前最后再捞一笔
前端·后端·程序员
ZengLiangYi1 小时前
AI 编程工具的数据格式为什么不能统一
javascript·后端·架构
Master_Azur1 小时前
JavaEE之网络编程(TomCat介绍)
后端·网络协议
预知同行1 小时前
订单超时自动取消,你真的做对了吗?从定时任务到千万级高并发方案的完整演进
后端
ServBay2 小时前
2026年重新定义 Python 开发工作流的8个现代化工具
后端·python
Java内核笔记2 小时前
Spring Security 过滤器链的构建过程:从 HttpSecurity 到 DefaultSecurityFilterChain
后端