制作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

相关推荐
DROm RAPS42 分钟前
springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
spring boot·后端·docker
爱丽_1 小时前
Spring Boot 启动链路:自动装配、条件注解与排错方法论
java·spring boot·后端
RDCJM1 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
candyTong1 小时前
Claude Code 是怎么跑起来的:从 Agent Loop 理解代理循环实现
前端·后端·ai编程
郝学胜-神的一滴1 小时前
Linux高性能网络编程基石:epoll核心与文件描述符限制全解
linux·服务器·网络·c++·后端
卷福同学1 小时前
Claude Code源码泄露:8大隐藏功能曝光
人工智能·后端·算法
henujolly9 小时前
go学习day two
后端
AI袋鼠帝10 小时前
腾讯这只小程序Agent🦀,帮我找到了最强日程、文件、知识管理姿势
后端
努力的小郑10 小时前
突发!Claude Code 51万行源码全网裸奔:一场史诗级“开源”事故,国内大厂笑麻了
前端·后端·ai编程
HashTang10 小时前
Claude Code 源码中 REPL.tsx 深度解析:一个 5005 行 React 组件的架构启示
前端·后端·ai编程