crates.ioのcrateを使う

crates.ioは、Rustで使えるutility crateをまとめたサイトです。
たとえば、乱数を生成するrandを導入する場合、以下の手順になります。

1)下図のrand = “0.8.5”をコピーする

undefined

2)Cargo.tomlのdependenciesに登録する

[package]
name = "lib_demo"
version = "0.1.0"
edition = "2021"

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

[dependencies]
rand = "0.8.5"

3)buildする

cargo build

4)useで参照する

use rand::Rng;

pub fn gen_ran() -> u8 {
  let mut rng = rand::thread_rng();
  let n: u8 = rng.gen();
  n
}

自作のライブラリを使う

自作したライブラリをGitHubに登録して、それをrust appで使用する方法です。

1)ライブラリの作成

cargoを使ったプロジェクトは、appとlibがあり、ライブラリとしてプロジェクトを作る場合は、以下のコマンドで作成します。

cargo new --lib [name]

ちなみに、アプリケーションとしてプロジェクトを作成する場合は、

cargo new [name]

2)lib.rsに関数を作る

ライブラリは、lib.rsが実行ファイル(最初にcallされるファイル)になります。ここに、publicで関数を記述することで、ライブラリとして外部から呼び出すことができます。

mod generator;

pub fn print_random_number() {
  let n = generator::gen_ran();
  println!("Random u8: {}", n);
}

3)GitHubにリポジトリを作成する

publicリポジトリを作成して、プロジェクトをコミットします。

4)ライブラリとして別のプロジェクトから呼び出す

ライブラリを使いたいプロジェクトのCargo.tomlのdependenciesに登録します。
gitに指定しているurlは、リポジトリのurlです。

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

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

[dependencies]
lib_demo = {git = "https://github.com/xxxxx/rust-lib-demo"}

5)buildする

cargo build

6)extern crateで参照する

登録したライブラリは、extern crateで参照します。

extern crate lib_demo;

fn main() {
  lib_demo::print_random_number();
}

参考

この記事は、こちらの備忘録として書いています。

 

bannerAds