Skip to content

Rust Crates.io

Crates.io 是 Rust 的官方包注册表,用于发布和分享 Rust 库。本章节将介绍 Crates.io 的使用方法。

什么是 Crates.io

Crates.io 是 Rust 的官方包注册表,它允许开发者:

  • 发布自己的 Rust 库
  • 搜索和使用他人的 Rust 库
  • 管理依赖关系

搜索和使用 Crates

在 Cargo.toml 中添加依赖

toml
[dependencies]
serde = "1.0"
rand = "0.8"

使用 cargo add 命令

bash
cargo add serde
cargo add rand

搜索 Crates

可以在 Crates.io 网站上搜索 Crates,也可以使用 cargo search 命令:

bash
cargo search json

发布 Crate

准备工作

  1. 创建 Crates.io 账号:访问 Crates.io 注册账号

  2. 获取 API Token:在 Crates.io 的个人设置页面获取 API Token

  3. 登录 Cargo

    bash
    cargo login <API_TOKEN>

准备 Crate

  1. 创建 Cargo 项目

    bash
    cargo new --lib my-crate
    cd my-crate
  2. 编辑 Cargo.toml

    toml
    [package]
    name = "my-crate"
    version = "0.1.0"
    edition = "2021"
    description = "A simple Rust crate"
    license = "MIT"
    repository = "https://github.com/yourusername/my-crate"
    
    [dependencies]
  3. 编写代码

    rust
    // src/lib.rs
    pub fn hello() {
        println!("Hello from my crate!");
    }
  4. 运行测试

    bash
    cargo test

发布 Crate

bash
cargo publish

版本管理

语义化版本

Crates.io 使用语义化版本(Semantic Versioning):

  • Major:不兼容的 API 更改
  • Minor:向后兼容的功能添加
  • Patch:向后兼容的 bug 修复

更新版本

要更新 Crate 的版本,修改 Cargo.toml 文件中的 version 字段,然后重新发布:

toml
[package]
name = "my-crate"
version = "0.1.1" # 更新版本号
# ...
bash
cargo publish

文档

生成文档

bash
cargo doc --open

文档发布

当你发布 Crate 到 Crates.io 时,文档会自动发布到 docs.rs

最佳实践

  1. 编写清晰的文档:使用 Rustdoc 格式编写文档

  2. 添加示例:在文档中添加使用示例

  3. 编写测试:确保 Crate 的质量

  4. 遵循语义化版本:正确管理版本号

  5. 添加许可证:明确代码的许可证

  6. 提供仓库链接:方便用户查看源代码

总结

  • Crates.io:Rust 的官方包注册表
  • 搜索和使用 Crates:在 Cargo.toml 中添加依赖
  • 发布 Crate:创建账号,获取 API Token,登录并发布
  • 版本管理:使用语义化版本
  • 文档:生成并发布文档
  • 最佳实践:编写清晰的文档,添加示例,编写测试,遵循语义化版本,添加许可证,提供仓库链接

Crates.io 是 Rust 生态系统的重要组成部分,它使得 Rust 库的分享和使用变得简单。通过本章节的学习,你应该已经掌握了 Crates.io 的使用方法。