Cargo 依賴

2021-09-27 15:26 更新

從 crates.io 添加依賴項(xiàng)

crates.io是 Rust 社區(qū)的中央存儲(chǔ)庫(kù),用作發(fā)現(xiàn)和下載包的位置。cargo默認(rèn)配置為,使用它來(lái)查找請(qǐng)求的包.

獲取托管在crates.io的依賴'庫(kù)',將它添加到您的Cargo.toml.

添加依賴項(xiàng)

如果你的Cargo.toml,還沒(méi)有[dependencies]部分,添加它,然后列出您要使用的包名稱和版本。這個(gè)例子增加了一個(gè)time箱(crate)依賴:

[dependencies]
time = "0.1.12"

版本字符串是semver版本要求。該指定依賴項(xiàng)文檔 提供了有關(guān)此處選項(xiàng)的更多信息.

如果我們還想添加一個(gè)regex箱子依賴,我們不需要為每個(gè)箱子都添加[dependencies]。下面就是你的Cargo.toml文件整體,看起來(lái)像依賴于timeregex箱:

[package]
name = "hello_world"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]

[dependencies]
time = "0.1.12"
regex = "0.1.41"

重新運(yùn)行cargo build,Cargo 將獲取新的依賴項(xiàng)及其所有依賴項(xiàng),將它們?nèi)烤幾g,然后更新Cargo.lock:

$ cargo build
      Updating registry `https://github.com/rust-lang/crates.io-index`
   Downloading memchr v0.1.5
   Downloading libc v0.1.10
   Downloading regex-syntax v0.2.1
   Downloading memchr v0.1.5
   Downloading aho-corasick v0.3.0
   Downloading regex v0.1.41
     Compiling memchr v0.1.5
     Compiling libc v0.1.10
     Compiling regex-syntax v0.2.1
     Compiling memchr v0.1.5
     Compiling aho-corasick v0.3.0
     Compiling regex v0.1.41
     Compiling hello_world v0.1.0 (file:///path/to/project/hello_world)

我們的Cargo.lock包含有關(guān),我們使用的所有這些依賴項(xiàng)的哪個(gè)版本的確實(shí)信息.

現(xiàn)在,如果regexcrates.io上更新了,在我們選擇cargo update之前,我們?nèi)詴?huì)使用相同的版本進(jìn)行構(gòu)建.

你現(xiàn)在可以使用regex箱了,通過(guò)在main.rs使用extern crate。

extern crate regex;

use regex::Regex;

fn main() {
    let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
    println!("Did our date match? {}", re.is_match("2014-01-01"));
}

運(yùn)行它將顯示:

$ cargo run
   Running `target/hello_world`
Did our date match? true


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)