第一部分:创建 crates.io 账号
- 获取 GitHub 账号
crates.io 使用 GitHub 账号进行认证,因此你需要:
-
拥有一个 GitHub 账号(如果没有,请先注册)
-
确保你的 GitHub 账号邮箱已验证
- 登录 crates.io
-
访问 crates.io
-
点击右上角的 “Log in with GitHub”
-
授权 crates.io 访问你的 GitHub 账号
- 获取 API Token
-
登录后,点击右上角你的用户名
-
选择 “Account Settings”
-
在 “API Access” 部分,点击 “New Token”
-
为 token 命名(如 “my-laptop”)
-
点击 “Create” 生成 token
-
复制这个 token(它只会显示一次,请妥善保存)
- 在本地配置 API Token
在你的开发机器上运行:
cargo login
然后粘贴你复制的 token 并按回车。
第二部分:准备要发布的库
- 创建或检查你的 Cargo.toml
确保你的 Cargo.toml 文件包含所有必要信息:
[package]
name = "your-library-name" # 必须是唯一的,全crates.io范围内
version = "0.1.0" # 遵循语义化版本控制
authors = ["Your Name <your.email@example.com>"]
description = "A short description of your library"
license = "MIT OR Apache-2.0" # 必须使用SPDX标识符
repository = "https://github.com/yourusername/your-repo"
documentation = "https://docs.rs/your-library-name"
keywords = ["keyword1", "keyword2", "keyword3"] # 最多5个
categories = ["category-from-list"] # 可选,从现有分类中选择[dependencies]
# 你的依赖项
- 添加文档和元数据
-
确保你的库有良好的文档:
- 在主要项目文件顶部添加文档注释:
//! 这里是库级别的文档/// 这里是函数文档
pub fn example() {}
-
添加 README.md 文件
-
添加 LICENSE 文件
- 验证你的包
运行以下命令检查是否可以打包:
cargo package
检查是否有警告或错误:
cargo publish --dry-run
第三部分:发布你的库
- 发布到 crates.io
运行发布命令:
cargo publish
- 发布后的操作
-
你的库现在可以在 crates.io 上找到
-
文档会自动构建并发布到 docs.rs
-
你可以通过以下命令更新版本:
-
修改 Cargo.toml 中的版本号
-
运行 cargo publish 再次发布
-
第四部分:最佳实践和注意事项
- 命名规范
-
名称必须唯一(先到先得)
-
只包含字母、数字、- 或 _
-
建议使用小写字母和连字符
-
避免使用 Rust 或 cargo 前缀
- 版本控制
-
遵循语义化版本控制 (SemVer)
-
0.x.y 版本可以随时进行破坏性更改
-
1.0.0 后要谨慎进行破坏性更改
- 维护
-
及时回复 issue 和 PR
-
考虑添加 CI/CD 自动化测试和发布
-
定期更新依赖项
- 更新已发布的库
-
修改 Cargo.toml 中的版本号
-
提交更改
-
运行 cargo publish
- 无法删除版本
注意:一旦发布,版本无法删除,只能标记为 “yanked”(撤回):
cargo yank --vers 1.0.0 your-library-name
第五部分:常见问题解决
- 名称已被占用
-
尝试其他变体或添加后缀
-
如果项目已废弃,可以联系维护者或 crates.io 团队
- 发布失败
-
检查网络连接
-
确保 token 正确配置
-
检查 Cargo.toml 是否有错误
- 文档构建失败
-
检查文档注释是否有错误
-
确保所有公共API都有文档
通过以上步骤,你应该能够成功创建 crates.io 账号并发布你的 Rust 库。发布后,其他开发者可以通过在 Cargo.toml 中添加你的库作为依赖来使用它。