发布rust包 (crates.io)

概述

rust 的包 (或者 库, library) 叫做 crate, 也就是软件中的一个组件。一个完整的软件通常由多个 crate 组成, rust 编译器 (rustc) 一次编译一整个 crate, 不同的 crate 可以同时并行编译。

crates.io

rust 官方有一个集中发布开源包的网站,官网 :

https://crates.io/

crate.io 上发布了各种开发常用的工具库,可以很方便地在自己的项目中使用,从而加速我们的开发。

发布自己的rust工具包

1. 编写 Cargo.toml

参考 :  https://doc.rust-lang.org/cargo/reference/manifest.html

[package]
name = "hai-rust-test"
version = "0.1.0"
edition = "2021"

# 需要添加
email = "**@**.com"
description = "hai test"
license = "MIT OR Apache-2.0"
repository = "https://github.com/cnlesscode/hai-rust-test"

[dependencies]

2. 登录 creates.io,获取 API Token :

可以使用 github 账户同步登录,首次登录需要邮件验证。

获得 token 后在本地运行命令 :

cargo login --registry crates-io

输入 token 完成本地记录。

3. 创建包及仓库

3.1 创建项目

cargo new hai-rust-test

3.2 初始化仓库

echo "# hai-rust-test" >> README.md
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/cnlesscode/hai-rust-test.git
git push -u origin main

4. 编写源码

测试示例 : 在 src/lib.rs 中编写测试代码 :

pub fn say(){
    println!("test say");
}

4. 完善文件

4.1 完善 README.md;

4.2 使用 cargo doc 编译文档;

5. 发布到 creates.io

注意 : 发布前先将最新版本代码提交至代码仓库。
cargo publish

发布后,在 creates.io 账户中心即可看到自己发布的包。

使用已发布的包

1. 安装包,在 Cargo.toml 中添加依赖

Cargo.toml:

[dependencies]
hai-rust-test = "0.1.0"

2. 在 main.rs 中应用

fn main() {
    hai_rust_test::say();
}