Aggiungere crate di terze parti al progetto

Completato

In questo modulo viene illustrato come aggiungere crate di terze parti al progetto. La libreria Rust standard non ha un modulo per le espressioni regolari, quindi si aggiungerà il crate regex disponibile nel repository Crates.io. Questo sito Web è il registro dei pacchetti centrale della community Rust che funge da posizione in cui individuare e scaricare i pacchetti.

Quando si vogliono aggiungere crate dipendenti al progetto, è possibile affidare a Cargo l'esecuzione di tutte le attività più complesse. Per impostare una dipendenza da una libreria ospitata in Crates.io, aggiungerla al file Cargo.toml:

[dependencies]
regex = "1.4.2"

Se il file Cargo.toml non contiene già una sezione [dependencies], aggiungerla. Elencare quindi il nome e la versione del crate da usare.

Il passaggio successivo consiste nell'eseguire il comando cargo build. Cargo recupera la nuova dipendenza e tutte le relative dipendenze e le compila tutte:

    $ cargo build
        Updating crates.io index
      Downloaded regex v1.4.2
      Downloaded thread_local v1.0.1
      Downloaded regex-syntax v0.6.21
      Downloaded lazy_static v1.4.0
      Downloaded aho-corasick v0.7.15
      Downloaded memchr v2.3.4
      Downloaded 6 crates (689.7 KB) in 4.58s
       Compiling memchr v2.3.4
       Compiling lazy_static v1.4.0
       Compiling regex-syntax v0.6.21
       Compiling thread_local v1.0.1
       Compiling aho-corasick v0.7.15
       Compiling regex v1.4.2
       Compiling my-project v0.1.0 (/home/user/code/my-project)
        Finished dev [unoptimized + debuginfo] target(s) in 35.13s

A questo punto è possibile usare la libreria regex nel file main.rs:

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"));
}

Eseguendo il codice verrà visualizzato l'output seguente:

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

È anche possibile usare crate di terze parti in Rust Playground.